【问题标题】:VIM Autocomplete - Use $ as the word separatorVIM 自动完成 - 使用 $ 作为单词分隔符
【发布时间】:2009-12-23 03:21:07
【问题描述】:

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

var myFunction = function() { };

var anotherFunction = function() { };

var test-m

我现在可以按 Ctrl + P,它会在自动完成列表中显示“myFunction”。这很棒而且很有帮助。

但我想做的是让 VIM 像对待 '-' 一样对待 '$'。

所以当我输入时

var myFunction = function Module$m  

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

我有 looked at this question 并尝试使用 iskeyword 命令将 $ 设置为关键字,但没有帮助。

而且我知道这样做是可能的,因为我以前可以让它工作,然后我把我的 VIMRC 搞砸了,我再也不能让它工作了。 :(

感谢您的帮助,谢谢!

【问题讨论】:

    标签: vim autocomplete word separator


    【解决方案1】:

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

    :set iskeyword-=\$
    

    如果想要相反:(要自动完成包含美元符号的单词,请通过相反的方式将文字美元符号添加到当前自动完成匹配模式:

    :set iskeyword+=\$
    

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

    :set iskeyword?
    

    这将向您显示 vim 认为单个单词的 ASCII 范围列表。我的看起来像:

    iskeyword=@,48-57,_,192-255
    

    【讨论】:

    • 禅,我试过了。它不起作用。还有其他想法/想法吗?
    • 我很惊讶这对你不起作用。我在发布之前对其进行了测试。甚至使用了您的关键字。 :( 也许区分大小写?set ic! ?您正在尝试自动完成“Module$m”,对吗?
    • 尝试通过:set iskeyword? 来检查 iskeyword 的设置——也许有什么东西覆盖了它?您应该在该输出中看到一个美元符号。 (在 +=\$ 之后)
    • Zen,我运行了命令,这就是我所看到的。 @,48-57,_,192-255,$。所以 $ 存在于列表中。非常感谢您在这件事上的帮助。
    • 好的,通过数字试试这个: 1. 执行 vim -u NONE (启动没有 vimrc 的新 vim。) 2. 在空白页添加行 'module$m' 3. 在新行, 在插入模式下输入 control-p。 (它应该自动完成“模块”) 4. 执行:set iskeyword+=\$ 5. 再次进入插入模式,键入 control-p (它应该自动完成 'module$m' - 首先验证这是否有效。如果是这样,则另一个插件或配置正在覆盖默认行为..然后它的问题是寻找负责的插件或 vimrc 条目.. 你知道二进制搜索是什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2015-03-31
    • 1970-01-01
    相关资源
    最近更新 更多