Vim关闭缓冲区但没有拆分窗口

Rus*_*lex 24 vim buffer

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

如果我按下:bd,关闭缓冲区的窗口也会关闭.

val*_*lid 28

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

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

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

删除屏幕外缓冲区会使屏幕保持原样分割.

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

  • nmap - 添加/更改模式正常的键映射
  • ,d - 作出反应的关键序列; 先,(逗号),然后d
  • :b#<bar>bd#<CR> - 要执行的键序列

要执行的命令由五部分组成:

  • : - 将vim切换到模式命令行
  • b# - 将窗口切换到先前打开的缓冲区
  • <bar> - 期待后续指挥; 代表|(管道特征); 用于链接命令
  • bd# - 删除先前打开的缓冲区,即刚刚切换掉的缓冲区
  • <CR> - 执行命令; 代表回车,基本上是钥匙ReturnEnter

该命令的格式为配置文件中使用的格式~/.vimrc.如果你想在pre之前添加映射:(冒号) - 那么当退出vim时,映射就会丢失:

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

打开vim时,它通常处于正常模式,而不是模式插入(-- INSERT --按下后在屏幕底部指示i),视觉等.将nnmap指定要添加到仅正常模式键映射.在此处查找有关映射的更多信息

重要笔记:

  • b# 如果它是唯一已知的缓冲区,将切换到当前缓冲区.
  • b#可以切换到隐藏/关闭的缓冲区,例如您刚关闭的缓冲区,d.
  • bd# 将关闭当前缓冲区,如果它是唯一已知的缓冲区未分割屏幕,留下空缓冲区.
  • bd# 如果缓冲区切换离开是隐藏/关闭缓冲区将失败.
  • bd# 如果在切换另一个窗口后显示要关闭的缓冲区,仍将保持未分割.

补充说明:

  • :windo b#将所有窗口切换到先前打开的缓冲区.不知道如何结合bd.
  • <CR>可以省略,在这种情况下你必须手动按ReturnEnter执行.
  • :nmap ,显示所有正常模式映射,.
  • :ls 列出开放缓冲区.


too*_*php 9

在vim中不可能有一个空窗口,但你可以使用在当前窗口中创建一个新的空文件:enew.