当我在Vim中打开一个新文件时,我使用制表符完成,它完成了整个文件名,而不是像Bash那样做部分匹配。是否有一个选项使这个文件名选项卡完成工作更像Bash?
当前回答
尝试使用:set wildmenu。除此之外,我不知道你到底想干什么。
哦,对了,也许可以试试这个链接:链接
其他回答
set wildmode=longest:full给你一个类似bash的补全:
单行建议 Tab只完成确定的内容 右/Ctrl-n |左/Ctrl-p选择建议。
来自帮助:
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>
除了建议的wildmode/wildmenu, Vim还提供了使用Ctrl + d显示所有可能的补全选项的选项,这可能对一些像我一样在Vim中搜索不同的自动补全选项时偶然遇到这个问题的用户有帮助。
最接近Bash完成的行为应该是
set wildmode=longest:full,full
键入几个字符,按一次tab键将在wildmenu中给出所有可用的匹配项。这与Michael的回答不同,Michael在命令行下面打开了一个类似快速修复的窗口。
然后你可以继续输入剩下的字符,或者再次按tab键自动完成第一个匹配,然后圈起来。
如果你不想设置wildmenu,当你想打开一个文件时,你总是可以按Ctrl + L。Ctrl + L将像Bash补全一样完成文件名。
我个人使用
set wildmode=longest,list,full
set wildmenu
当您键入第一个选项卡时,它将尽可能地完成。第二个选项卡将提供一个列表。第三个和随后的选项卡将循环完成选项,这样您就可以在没有其他键的情况下完成文件。
Bash-like是正确的
set wildmode=longest,list
但是全包很方便。
推荐文章
- 如何在Vim注释掉一个Python代码块
- 如何在可视块模式插入?
- 强迫自己掌握vi的最好方法是什么?
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?