阻止插件在vim中重新映射密钥

时间:2011-09-01 13:37:02

标签: vi vim macvim vim-plugin

我为vim安装了一堆插件,其中一个打破了dw命令。我不确定它是哪一个。基本上dw现在正在通过它找到的下一个空格删除所有内容,而不是像它应该那样停在标点符号上。

我真的不想弄清楚哪一个正在打破它以及如何解决它。有没有办法在我的.vimrc中指定我不希望它改变?

修改

Luc已经回答了我的问题,但我认为我仍然会为未来的读者清理它,因为对dw默认应该做的事情存在一些分歧。让我们说我们有1234.5678这个词。默认情况下,在我使用过的所有系统上,如果光标在1上,键入dw应该会留下.5678。当我问这个问题时,为我输入dw反而删除了整个事情(1234.5678)。

3 个答案:

答案 0 :(得分:4)

dw 不是映射。 d 是一个接受motion的命令,正确的行为正是您所描述的行为。 dw 代表删除单词并执行:)。顺便说一句,如果您想了解一些关于映射的内容,我建议您尝试以下命令:

:map

它为您提供所有映射的列表。精彩的:

:verbose map <c-s>

为您提供有关给定映射的详细信息(在我们的案例中为<c-s>

答案 1 :(得分:3)

如果问题不在@Luc Hermitte提到的'iskeyword'选项中,那么有两种可能性:

  1. 重新映射ddw的正常模式映射。命令检查是否是问题:

    verbose nmap d
    

    。它将报告所有d*映射,包括d本身和dw。我认为不会有很多。

  2. 重新映射w的操作员待定映射。使用

    检查
    verbose omap w
    
  3. 我不认为虽然任何插件作者都非常傲慢地重新映射这个,所以首先检查@Luc Hermitte的答案。

答案 2 :(得分:2)

我认为你没有找到正确的事情。搜索哪个(ft?)插件覆盖'isk' - 仍然使用详细信息 - &gt; :verbose set isk

:h w 
:h word