可以通过在Vim中按*
来搜索当前光标下的单词。
我发现如果我在C ++文件中有word_with_underscores
,那么*
会搜索整个单词。但是,LaTeX文件中的相同word_with_underscores
仅搜索由下划线分隔的单词的一部分。例如,如果光标位于u
,则仅搜索underscores
。
为什么这种行为发生了变化?如何在LaTeX文件中获取C ++文件中的行为?
答案 0 :(得分:1)
*
命令以及w
或b
的行为取决于选项iskeyword
。参见
:h *
:h 'iskeyword'
latex文件类型的语法文件更改了此选项,删除了列表的_
字符。
在vim 7.4上,:set iskeyword?
使用C ++文件返回以下内容:
iskeyword=@,48-57,_,192-255
但是有一个乳胶文件:
iskeyword=48-57,a-z,A-Z,192-255
这通常由vim语法文件更改,以适应某些语言的特定性。例如,使用lisp文件,会添加-
。我不知道latex,但是_
char在语法中肯定有某种特定的含义,无论如何。
您可以在vimrc
中执行以下操作来覆盖此内容:
au FileType tex set iskeyword=48-57,_,a-z,A-Z,192-255