我一直使用vim shift-8来搜索courser下的关键字。当关键字很简单时,它可以正常工作,即字母数字+下划线。但是如果有“。”在关键字中。它只搜索由“。”分隔的关键字部分。
Ex:“a.b”,如果我的光标在a上,则shift-8将搜索“a”。
是否有捷径可以搜索“a.b”作为一个整体。
由于
答案 0 :(得分:3)
a.b
不是一个,而是两个关键字,因为.
通常不属于关键字字符集。您有两种选择:
.
成为关键字字符。使用:set iskeyword+=.
(或:setlocal
仅用于单个缓冲区。另请注意,某些文件类型插件可能会更改该选项。)请注意,这会影响w
之类的动作,并可能导致问题语法高亮。*
命令扩展为可视模式。有了它,您可以选择任何文本(例如a.b
通过viW
),然后通过*
搜索匹配项。 (插件页面包含指向其他插件的链接;其中有几个插件。)答案 1 :(得分:2)
这是可能的。根据手册,“*
”/“#
”使用整个单词进行搜索,并且有一种方法可以更改vim
认为的内容一个字。包含该设置的变量为iskeyword
,默认为@,48-57,_,192-255
或!-~,^*,^|,^",192-255
等值。
您可以使用以下命令之一
打印当前设置:set isk
:set iskeyword
尝试将其设置为类似@,46,48-57,_,192-255
的内容。重要的是在设置中包含 46 ,这是“.
”字符。以下命令可以完成这项工作:
:set iskeyword=@,48-57,_,192-255
:set isk+=.
答案 2 :(得分:1)
请参阅'iskeyword'
的帮助:
*'iskeyword'* *'isk'*
'iskeyword' 'isk' string (Vim default for MS-DOS and Win32:
"@,48-57,_,128-167,224-235"
otherwise: "@,48-57,_,192-255"
Vi default: "@,48-57,_")
local to buffer
{not in Vi}
Keywords are used in searching and recognizing with many commands:
"w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See
'isfname' for a description of the format of this option. For C
programs you could use "a-z,A-Z,48-57,_,.,-,>".
For a help file it is set to all non-blank printable characters except
'*', '"' and '|' (so that CTRL-] on a command finds the help for that
command).
When the 'lisp' option is on the '-' character is always included.
NOTE: This option is set to the Vi default value when 'compatible' is
set and to the Vim default value when 'compatible' is reset.
因此,如示例所示,您可以
set isk=a-z,A-Z,48-57,_,.,-,>
和 * (以及其他命令)会在单词的定义中包含.
。