我在使用vim的macbook上,为了简单起见,我打算让~/some_file.py
,~/some_other_file.py
和~/user.py
打开。在Mac上,~
展开为/Users/<username>
。因此,如果我输入:b user
然后按Tab键展开,则会浏览每个文件,而不是直接转到~/user.py
。
有什么方法可以阻止这种行为吗?
答案 0 :(得分:0)
我无法在linux下重现你的问题(在我的vim完成列表中没有解决了波形符,因此:b home
在~/home.py
之前给了我~/some_file.py
,但是......
尝试输入:b user
,然后按Shift + Tab键完成。在这种情况下,我的vim(如果重要的话,7.2.442)完成了最后一场比赛,这就是你想要的。
答案 1 :(得分:0)
由于似乎无法更改Vim内置缓冲区完成,我唯一可以建议的(除了打开这些文件已经在主目录中)是定义你自己的:b
命令完成。它可能是这样的:
function! CustomBufferComplete(a, l, p)
let buf_out = ''
redir => buf_out
silent buffers
redir END
let buf_list = map(split(buf_out, "\n"), 'substitute(v:val, ' .
\ '''^.*"\%(\~[/\\]\)\?\([^"]\+\)".*$'', "\\1", "g")')
return join(buf_list, "\n")
endfunction
command! -nargs=1 -complete=custom,CustomBufferComplete B b <args>
(请注意,它会在返回完成列表之前切断路径的~/
部分。)