How can I toggle smartcase in Vim?

vim

Solution

If you add a bang after the option name in the `set` command, like this:

:set smartcase!

...it will toggle the option. You can create a key mapping to do this:

:map \s :set smartcase!<CR>

`<CR>` stands for carriage return. It represents the Return key.

Now just press \s and it toggles.

I usually write the mapping to also show in the bottom line whether the option is on or off, like this:

:map \s :set smartcase!<CR>:set smartcase?<CR>

Problem

I love `smartcase`, but there are times that I'd like to turn it off and search for just lowercase. Is there a builtin that will toggle smartcase, or do I need to write a function to toggle it?

Original source