在vim插入模式下,如果有一个单词insert
,并且如果我键入了ins
,然后键入了ctrl-p
,vim将自动将该单词补全到insert
。
我记得在我的最后一台PC上,如果我键入data.ins
然后键入ctrl-p
,vim会自动将单词改为data.insert
,但是由于我购买了新PC,因此vim不会自动完成data.ins
,如何解决?
顺便说一句,如果我在单词b
的{{1}}上键入t
,vim将跳回到data.insert
,而不是d
,我需要跳到i
答案 0 :(得分:1)
我怀疑点字符一定会成为iskeyword
选项的一部分。为了验证这一点,您可以查看:set iskeyword?
的输出(注意最后一个问号)。
要临时解决此问题,您可以执行:set iskeyword-=.
。要永久解决此问题,请找出iskeyword
中.vimrc
的更改位置。
选项iskeyword
确定Vim认为哪些字符是“单词”的一部分。其中带有点,data.insert
之类的字符串将被视为一个单词,这意味着您可以通过单个w
/ b
/ e
/ ...动作跳过它们。 Ctrl-p自动补全功能可检查到目前为止键入的子字符串是否是文档其余部分中“单词”的一部分。由于您之前没有输入data.insert
,因此找不到以data.ins
开头的任何内容。当您从iskeyword
删除点时,它只会看起来是否以ins
开头(例如insert
)。
删除点后,如果发现自己偶尔想跳过整个点名,则可以使用Vim的WORD概念(请参见:h WORD
)。您可以使用W
/ B
/ E
/ ...来跳过WORD。