如何解决vim:vnew,但是接受缓冲区而不是文件名吗?
| 当前,如果要创建一个新窗口然后加载缓冲区,请使用use0ѭ:buf foo.py
。有一个命令可以同时执行这两个命令吗?
解决方法
是的,有一个命令可以实现:
:[N]sb[uffer] [N] :sb :sbuffer
Split window and edit buffer [N] from the buffer list. If [N]
is not given,the current buffer is edited. Respects the
\"useopen\" setting of \'switchbuf\' when splitting. This will
also edit a buffer that is not in the buffer list,without
setting the \'buflisted\' flag.
您可能还会发现以下有用的东西:
:[N]sbn[ext] [N] :sbn :sbnext
Split window and go to [N]th next buffer in buffer list.
Wraps around the end of the buffer list. Uses \'switchbuf\'
:[N]sbN[ext] [N] :sbN :sbNext :sbp :sbprevious
:[N]sbp[revious] [N]
Split window and go to [N]th previous buffer in buffer list.
Wraps around the start of the buffer list.
Uses \'switchbuf\'.
这两个命令的问题在于它们将水平拆分。您可以在它们前面加上:vert[ical]
,但这破坏了您的一个命令范例:-)
无论如何,ѭ5并不是很多输入内容,如果您经常使用它,则可能要考虑为其创建地图。也许像这样:
cnoremap,sb vert sb
,只需告诉“ 0”文件路径:
:vnew foo.py
编辑:
就像sidyll所说的那样,没有内置命令可以垂直分割窗口以编辑缓冲区,然后我创建了一个新的ex命令,可以执行您想要的操作:
command! -nargs=1 -complete=buffer -bang Vbuffer vnew | buf<bang> <args>
exists11ѭ之后的!
将替换旧的ѭ12(如果存在的话,您可以删除它,因为我已经添加了它进行测试),-nargs=1
表示新命令接受1个参数,并以<args>
传递给:buf
命令,-complete=buffer
将建议缓冲区名称在键入tab作为参数名称时,ѭ17表示新命令接受!
选项,该选项也随<bang>
传递给:buf
命令。
只需将该行添加到您的~/.vimrc
,然后重新re22ѭ。 ;-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。