Vim关闭缓冲区但不分割窗口

如果我有2个缓冲区水平/垂直分割,并希望关闭其中一个,但我不想关闭一个窗口。我想保持拆分窗口的位置与关闭缓冲区之前相同。

如果我按:bd,其中被关闭的缓冲区的窗口也被关闭了。

像@RusAlex我不喜欢插件。我也想知道我输入的代码实际上是什么。

nmap,d:b#< bar> bd#< CR>

简而言之,这将添加关键映射到vim的正常模式等待键序列,d。执行时,将切换到以前打开的缓冲区,并尝试删除您切换的缓冲区。

删除屏幕上的缓冲区会保持屏幕的分割状态。

该命令由三个空格分隔的部分组成:

> nmap – 模式正常的添加/更改键映射
>,d – 键序列反应;第一,(逗号),然后d
>:b#< bar> bd#< CR> – 执行的关键顺序

要执行的命令包括五个部分:

>: – 将vim切换到mode命令行
> b# – 切换窗口以前打开缓冲区
>< bar> – 期待后续的命令;代表| (管道字符);用于链接命令
> bd# – 删除以前打开的缓冲区,即刚刚切换的缓冲区
>< CR> – 执行命令;表示回车,基本上按键Return或Enter

该命令的格式是在〜/ .vimrc等配置文件中使用。如果你想添加vim内的映射,你可以预先添加:(冒号) – 当vim退出时,映射就会丢失:

:nmap,d:b#< bar> bd#< CR>

当您打开vim时,通常处于正常模式,而不是插入模式(在屏幕底部显示 – INSERT – 按i之后),可视化等。 nmap中的n指定仅添加到正常模式的密钥映射。查找更多关于映射here

重要笔记:

> b#将会切换到当前缓冲区,如果它是唯一已知的缓冲区。
> b#可以切换到隐藏/关闭的缓冲区,例如你刚刚关闭的那个,d。
> bd#将关闭当前的缓冲区,如果它是唯一已知的缓冲区,则会使屏幕无效,从而留下空的缓冲区。
如果缓冲区切换离开,则bd#将失败,这是一个隐藏/关闭的缓冲区。
> bd#仍然会分解,如果切换另一个窗口显示缓冲区关闭。

补充笔记:

>:windo b#将所有窗口切换到以前打开的缓冲区。不确定如何结合bd。
>< CR>可以省略这种情况,您必须手动按Return或Enter才能执行。
>:nmap,以…开头显示所有正常模式映射。
>:ls列出开放缓冲区。

http://stackoverflow.com/questions/4298910/vim-close-buffer-but-not-split-window

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Vim关闭缓冲区但不分割窗口