如何让Vim为文件名执行正常(类似Bash)选项卡?

时间:2009-02-09 01:19:45

标签: vim

当我在Vim中打开一个新文件并使用Tab键完成时,它会完成整个文件名而不是像Bash那样进行部分匹配。是否有一个选项可以让这个文件名标签完成工作更像Bash?

7 个答案:

答案 0 :(得分:391)

我个人使用

set wildmode=longest,list,full
set wildmenu

当您键入第一个标签页时,它将尽可能完成。第二个标签命中将提供一个列表。第三个及后续选项卡将循环显示完成选项,因此您无需其他键即可完成文件。

Bash-like只是

set wildmode=longest,list 

但是完整非常方便。

答案 1 :(得分:21)

与Bash完成最接近的行为应该是

set wildmode=longest:full,full

输入一些字符后,按一次标签即可在 wildmenu 中提供所有匹配项。这与Michael的答案不同,后者在命令行下方打开了类似quickfix的窗口。

然后您可以继续输入其余字符,或再次按Tab键以自动完成第一场比赛并围绕它旋转。

答案 2 :(得分:6)

如果您不想设置wildmenu,则可以在要打开文件时始终按 Ctrl + L Ctrl + L 将完成文件名,如Bash完成。

答案 3 :(得分:6)

除了建议的wildmode / wildmenu之外,Vim还提供了使用 Ctrl + D 显示所有可能的完成的选项。对于在Vim中搜索不同的自动完成选项时遇到此问题的一些用户可能会有所帮助。

答案 4 :(得分:4)

我假设您通过 Ctrl + N 在Vim中使用自动完成功能来搜索当前缓冲区。使用此命令时,您将获得一个解决方案列表;只需重复该命令即可转到列表中的下一个项目。所有自动完成命令都是如此。当他们填写整个单词时,您可以继续浏览列表,直到到达您想要使用的单词。

这可能是一个更有用的命令: Ctrl + P 。唯一的区别是 Ctrl + P 在缓冲区中向后搜索,而 Ctrl + N 搜索向前...实际上,它们都会提供具有相同元素的列表,并且它们可能只是以不同的顺序出现。

答案 5 :(得分:0)

尝试使用:set wildmenu。除此之外,我不确定你究竟在尝试什么。

哦,是的,也许可以试试这个链接:link

答案 6 :(得分:0)

set wildmode=longest:full 为您提供类似 Bash 的补全:

  • 一行建议
  • Tab 仅完成确定的内容
  • 右/Ctrl-n |向左/Ctrl-p 选择建议。

Preview of described feature

来自帮助:

If you prefer the <Left> and <Right> keys to move the cursor instead
of selecting a different match, use this:
      :cnoremap <Left> <Space><BS><Left>
      :cnoremap <Right> <Space><BS><Right>