我为vim安装了一堆插件,其中一个打破了dw
命令。我不确定它是哪一个。基本上dw
现在正在通过它找到的下一个空格删除所有内容,而不是像它应该那样停在标点符号上。
我真的不想弄清楚哪一个正在打破它以及如何解决它。有没有办法在我的.vimrc中指定我不希望它改变?
修改
Luc已经回答了我的问题,但我认为我仍然会为未来的读者清理它,因为对dw
默认应该做的事情存在一些分歧。让我们说我们有1234.5678这个词。默认情况下,在我使用过的所有系统上,如果光标在1上,键入dw
应该会留下.5678。当我问这个问题时,为我输入dw反而删除了整个事情(1234.5678)。
答案 0 :(得分:4)
dw 不是映射。 d 是一个接受motion的命令,正确的行为正是您所描述的行为。 dw 代表删除单词并执行:)。顺便说一句,如果您想了解一些关于映射的内容,我建议您尝试以下命令:
:map
它为您提供所有映射的列表。精彩的:
:verbose map <c-s>
为您提供有关给定映射的详细信息(在我们的案例中为<c-s>
)
答案 1 :(得分:3)
如果问题不在@Luc Hermitte提到的'iskeyword'选项中,那么有两种可能性:
重新映射d
或dw
的正常模式映射。命令检查是否是问题:
verbose nmap d
。它将报告所有d*
映射,包括d
本身和dw
。我认为不会有很多。
重新映射w
的操作员待定映射。使用
verbose omap w
我不认为虽然任何插件作者都非常傲慢地重新映射这个,所以首先检查@Luc Hermitte的答案。
答案 2 :(得分:2)
我认为你没有找到正确的事情。搜索哪个(ft?)插件覆盖'isk'
- 仍然使用详细信息 - &gt; :verbose set isk
:h w
:h word