使用 gvim 7.3 时,我可以通过键入 v 然后键入 w 来选择一个单词。所选单词不包括单词后的标点符号。在 Linux 上使用 vim 7.2 时,通过键入 v 然后键入 w 来选择一个单词也会选择后面的标点符号。
For example with this text and the cursor at the beginning of the line:
clk : in
On Windows, v w y o esc p produces
clk : in
clk
On Linux, v w y o esc p produces
clk : in
clk :
注意 Linux 上的额外冒号
这是为什么?如何让 Linux 上的 VIM 表现得像 Windows 上的 gvim(反之亦然)?
答案1
vw
将从光标处选择文本到当前“单词”末尾,其中“单词”是来自 'iskeyword' 选项定义的集合的字符序列。'iskeyword' 选项默认为 ASCII 字母数字字符加下划线 (_) 的集合。
如果vw
选择的字符不止这些,那么可能是某个文件类型插件在“iskeyword”中添加了字符,插件作者认为,这在编辑当前文件类型时更有用。要找出iskeyword
设置的位置,请执行
:verbose set iskeyword?
可能是您的 Windows Vim 安装与 Linux Vim 安装有一组不同的插件,或者您的 Linux ~/.vimrc 启用了文件类型检测而您的 Windows ~/_vimrc 没有。
该行为可以改变,但如何或应该如何改变将取决于您想要的行为以及如何iskeyword
设置。
答案2
您可以写入viw
以选择一个“内部单词”(没有周围的标点符号)。
viwoESCp
然后会产生与 Windows 版本相同的输出。