防止vim意外打开二进制文件?
当我打算打开关联的源代码“foo.cpp”时,我经常意外打开二进制可执行文件,即“foo”。问题的根源在于选项卡完成,即:e fo<tab>
通常落在二进制文件而不是源代码上。防止vim意外打开二进制文件?
有没有办法让vim只能标签文本文件的完整名称?或者,也可以更改标签完成顺序?
有时我的hasty tab完成错误发生在vim之外;对于这些情况,防止vim打开非文本文件的最佳方法是什么?
你是不是需要什么,但是我有这样的事情在我的.vimrc
" ignore these files when completing names and in Ex
set wildignore=.svn,CVS,.git,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*.jpg,*.png,*.xpm,*.gif,*.pdf,*.bak,*.beam
" set of file name suffixes that will be given a lower priority when it comes to matching wildcards
set suffixes+=.old
来自后缀help的帮助选项:“一个空条目,连续两个逗号,匹配的文件名不包含 包含”。“,因此没有后缀。这对忽略“prog”很有用,而且更喜欢 “prog.c”。“ – taro 2011-04-26 17:14:07
对于Vim之外tab完成,这将取决于你的shell。大多数炮弹都有某种形式的自动补全支持。特别地,Zsh能够自动完成例如远程主机的SSH。我不是具有这些功能的向导,但是当您键入的命令以“vim”开头时,让shell从自动完成列表中删除具有某些后缀的文件可能会相对简单。
快速谷歌搜索调高this page,其中有这样的:
# Filename suffixes to ignore during completion (except after rm command)
zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' \
'*?.old' '*?.pro'
应该不会太困难修改这个逻辑来得到你想要的(如果你使用岩组)。
“此网页”的链接已损坏:http://bodhizazen.net/Tutorials/zshrc – 2017-07-11 19:03:29
@AlexanderGuo您的链接导致一个垃圾邮件网站。 – Diti 2017-09-20 14:11:56
@Diti我说:“...的链接被打破了”,geezus – 2017-09-20 20:50:42
也许你能找到这个有用:
set wildmenu
set wildmode=longest,list
(取出并使用从How do I make vim do normal (bash like) tab completion for file names?)
怎么会知道vim的,如果是二进制文件或不?它必须打开并检查它们,这对于制表符完成非常重要。即使文件是可执行的,它仍然可以是纯文本。 – 2011-04-26 16:16:32
它可以忽略没有后缀且标记为可执行文件的文件。 (此外,检查第一个字节并缓存结果并不那么重) – Federico 2016-11-17 14:53:38