VIM自动完成 - 使用$作为单词分隔符

Sol*_*ogi 4 vim autocomplete cpu-word separator

假设我在源文件中输入了以下内容.

var myFunction = function() { };

var anotherFunction = function() { };

var test-m
Run Code Online (Sandbox Code Playgroud)

我现在可以按Ctrl + P,它将在自动完成列表中显示"myFunction".这很棒,非常有帮助.

但我想要做的是让VIM以对待' - '的方式对待'$'.

所以当我输入

var myFunction = function Module$m  
Run Code Online (Sandbox Code Playgroud)

然后按Ctrl+P,它将在自动完成中显示myFunction.

看过这个问题并尝试使用iskeyword命令设置$ as keyword,但它没有帮助.

而且我知道可以这样做,因为我曾经让它工作过,然后我弄乱了我的VIMRC,我不能再让它工作了.:(

感谢您的帮助!

zen*_*zen 12

要使vim使用美元符号作为单词分隔符,请执行以下操作:

:set iskeyword-=\$
Run Code Online (Sandbox Code Playgroud)

如果想要相反:(要自动填充包含美元符号的单词,请在当前自动完成匹配模式中添加一个文字美元符号,执行相反的操作:

:set iskeyword+=\$
Run Code Online (Sandbox Code Playgroud)

要查找当前的iskeyword设置,请执行以下操作:

:set iskeyword?
Run Code Online (Sandbox Code Playgroud)

这将显示vim考虑单个单词的ASCII范围列表.我看起来像:

iskeyword=@,48-57,_,192-255
Run Code Online (Sandbox Code Playgroud)

  • 好吧,试试这个数字:1.做vim -u NONE(用no vimrc启动新的vim.)2.在空白页面添加行'module $ m'3.在新行上,在插入模式下输入control-p .(它应该自动完成"模块")4.执行`:set iskeyword + =\$`5.再次进入插入模式,键入control-p(它应该自动完成'module $ m' - 验证这是否有效.如果是,则另一个插件或配置覆盖默认行为..然后它的问题是搜索插件或vimrc条目负责..你知道二进制搜索是什么? (2认同)