在Bash中,当有多个文件具有相同的前缀,并且我键入了一部分前缀并单击Tab时,它会完成公用前缀,并允许我继续键入以区分可能的结果。

Vim,当有几个文件具有相同的前缀,并且我键入前缀的一部分并按Tab时,它将完成整个第一个匹配项,然后让我在所有匹配项中进行选择。为了减少集合,我必须退格,直到到达公共部分的末尾,然后再键入一些内容并再次按Tab。

我经常有很多文件,这些文件的公共前缀很长。 ,而我想要的文件不在第一个文件中(例如,项目文件的目录除其他外包含所有名称为Makefile.{whatever}的各种makefile)。

我可以使Vim的完整性更像重击可以节省很多击键吗?

如果这还可以应用于其他补全(例如,枚举值都具有相同前缀的枚举),是否有好处?

#1 楼

您可以使用wildmode选项来控制它。

如果使用:set wildmode=list:longest,您将获得类似于bash的行为。

我个人更喜欢使用:set wildmode=list:longest,full;这将列出补全,但是在第二次按Tab时,您可以在条目之间循环(按Shift + Tab则可以反向循环)。

这适用于Vim完成的所有补全。

请参阅::help 'wildmode'

评论


不插入模式完成!为此,您需要completeopt。

–丰富
2015年2月9日在16:28

谢谢! wildmode和completeopt正是我想要的!

– John O'M。
2015年2月9日在16:44