代码之家  ›  专栏  ›  技术社区  ›  Jason Baker

如何防止vim在完成过程中膨胀?

  •  0
  • Jason Baker  · 技术社区  · 15 年前

    ~/some_file.py , ~/some_other_file.py ,及 ~/user.py 打开在macOS上, ~ 扩展到 /Users/<username>

    :b user ~/user.py .

    2 回复  |  直到 5 年前
        1
  •  0
  •   Frédéric Hamidi    15 年前

    我无法在linux下重现您的问题(tildes在我的vim的完成列表中没有得到解决,所以 :b home ~/home.py 之前 ~/some_file.py ),但是。。。

    :b user 然后完成Shift+Tab。在这种情况下,我的vim(7.2.442,如果有必要的话)在最后一场比赛中完成,这就是你想要的。

        2
  •  0
  •   ib. Evgeny Shavlyugin    5 年前

    无法更改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>
    

    (请注意,它会切断电源。) ~/ 完成列表。)