在Zsh中,我可以使用带斜杠的文件名完成来定位源树中的文件.例如,如果我输入:
vim s/w/t/u/f >TAB<
zsh用以下代码替换模式:
vim src/wp-contents/themes/us/functions.PHP
我想要的是能够在Vim命令行中以相同的方式定位文件,以便键入
:vi s/w/t/u/f >TAB<
将自动完成:
:vi src/wp-contents/themes/us/functions.PHP
我正在尝试解析Vim文档的wildmode,但我看不到什么设置会给我这个.它正在为单个文件名进行自动完成,但不是文件路径. Vim是否支持本机?或者如何自定义文件的自动完成算法?
感谢任何建议!
-mykle-
我找不到一个插件来做,所以我写了一个.它被称为
vim-zsh-path-completion.它做你想要的,虽然通过< C-s>而不是< Tab>.您可以使用它< Tab>为了更好地控制什么比赛.
原文链接:https://www.f2er.com/bash/386726.html它有错误,但是对于没有空格/特殊字符的基本路径,它应该工作.我觉得在目前的状况下,这是有用的.我希望弄清楚错误并清理代码,但我想我会开始征求意见.
谢谢你的想法!
原始(错误)答案,但有一些关于Vim的野生模式的有用信息.
将以下内容放在您的.vimrc中:
set wildmenu set wildmode=list:longest
这将完成到< Tab>上最长的唯一匹配,包括在适当的时候附加/下载到目录中.如果有多个匹配,它将显示您目前为止输入的匹配列表.然后,您可以输入更多的字符和< Tab>再次完成.
我更喜欢以下设置,它完成了< Tab>上的第一个唯一匹配,然后弹出一个菜单,如果你点击< Tab>再次,您可以使用箭头键导航,然后按Enter键选择:
set wildmode=list:longest,list:full
查看:help wildmenu和:help wildmode.您也可以将wildignore设置为在完成时忽略的模式列表.我有我的
set wildignore=.git,*.swp,*/tmp/*