我该如何在Vim中切换智能大小写?

21

我喜欢 smartcase,但有时候我想关闭它并只搜索小写字母。是否有内置的开关可以切换 smartcase,还是我需要编写一个函数来切换它?

2个回答

23
如果您想完全切换它,请执行以下操作:
:set nosmartcase

但如果你想切换一两次搜索的模式,请在搜索模式中使用特殊符号:

  • \c 使模式忽略大小写,例如:/iGnOrEcAsE\c(匹配 "ignorecase");
  • \C 使模式区分大小写,例如:/matchcase\C(不匹配 "MatchCase")。

21
如果在set命令的选项名称后面添加一个感叹号,类似于这样:
:set smartcase!

...它将切换该选项。您可以创建一个键映射来执行此操作:

:map \s :set smartcase!<CR>

<CR> 代表回车符,表示 Return 键。

现在只需要按下 \s 就可以切换开关。

我通常会编写映射,以便在底部行中显示该选项是开启还是关闭,像这样:

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

更喜欢使用<cr>,这比^M更简单易于维护和解释。 - Luc Hermitte
@Luc:我不确定你能否使用那个,而且我手头没有vim来尝试,所以我选择了我确定的方法。我会进行编辑。 - R. Martinho Fernandes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接