VIM如何只关闭buffer, 但不关闭窗口?

Vim、Emacs配置和使用
回复
头像
sw2wolf
帖子: 435
注册时间: 2007-10-05 21:02

VIM如何只关闭buffer, 但不关闭窗口?

#1

帖子 sw2wolf » 2012-03-04 11:06

在VIM中用(v)split开了多个窗口, 用<:bd>删除Buffer时, 窗口也关闭了。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: VIM如何只关闭buffer, 但不关闭窗口?

#2

帖子 lilydjwg » 2012-03-04 13:18

buffer 不存,window 焉附?
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: VIM如何只关闭buffer, 但不关闭窗口?

#3

帖子 自由建客 » 2012-03-04 13:30

:em06
头像
sw2wolf
帖子: 435
注册时间: 2007-10-05 21:02

Re: VIM如何只关闭buffer, 但不关闭窗口?

#4

帖子 sw2wolf » 2012-03-04 16:19

lilydjwg 写了:buffer 不存,window 焉附?
可能没表达清楚, 一个窗口里有多个buffer, 所以关闭一个buffer时,希望能在窗口中显示另一个Buffer.
也就是说: 窗口 -< Buffer 是一对多的关系!
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

Re: VIM如何只关闭buffer, 但不关闭窗口?

#5

帖子 Strange » 2012-03-04 16:29

分两条命令

:b #
:bd #

也可以把这两条命令定义成一条命令
ニンニク入れますか?
x60 with gentoo
kevinlei
帖子: 40
注册时间: 2007-01-13 14:45

Re: VIM如何只关闭buffer, 但不关闭窗口?

#6

帖子 kevinlei » 2012-03-04 16:30

这个是vim的bug,有个插件叫bufkill.vim就是为了解决这个bug的。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: VIM如何只关闭buffer, 但不关闭窗口?

#7

帖子 lilydjwg » 2012-03-04 16:35

sw2wolf 写了:
lilydjwg 写了:buffer 不存,window 焉附?
可能没表达清楚, 一个窗口里有多个buffer, 所以关闭一个buffer时,希望能在窗口中显示另一个Buffer.
也就是说: 窗口 -< Buffer 是一对多的关系!
一个窗口里怎么可能有多个buffer?

如果希望 buffer 关闭时在窗口里显示另外的 buffer,自定义个命令吧。另外,你为什么要跟 buffer 过不去呢,直接 :enew 新建个 buffer(或者你自己找个)放那个 window 里好了。
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

Re: VIM如何只关闭buffer, 但不关闭窗口?

#8

帖子 Strange » 2012-03-04 17:03

看来lz的话不被理解啊,这个一个实际使用中经常会碰到的问题。
用最简单的话来说,就是如何保持已经打开的窗口布局的前提下关闭文件。
仅此而已。

看来大多数人并不太使用split这个功能嘛
ニンニク入れますか?
x60 with gentoo
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: VIM如何只关闭buffer, 但不关闭窗口?

#9

帖子 lilydjwg » 2012-03-04 18:01

Strange 写了:看来lz的话不被理解啊,这个一个实际使用中经常会碰到的问题。
用最简单的话来说,就是如何保持已经打开的窗口布局的前提下关闭文件。
仅此而已。

看来大多数人并不太使用split这个功能嘛
我就一直在用,但是还是没能理解 lz 的需求。「关闭文件」又是什么?至少对于小文件,Vim 是完全载入内存的。
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: VIM如何只关闭buffer, 但不关闭窗口?

#10

帖子 fanhe » 2012-03-04 21:54

同 Strange,同 Strange 处理即可
头像
sw2wolf
帖子: 435
注册时间: 2007-10-05 21:02

Re: VIM如何只关闭buffer, 但不关闭窗口?

#11

帖子 sw2wolf » 2012-03-05 8:02

Strange 写了:看来lz的话不被理解啊,这个一个实际使用中经常会碰到的问题。
用最简单的话来说,就是如何保持已经打开的窗口布局的前提下关闭文件。
仅此而已。
看来大多数人并不太使用split这个功能嘛
是这个意思, 本来分好的窗口布局, 一不小心<:bd>, 又得重新布局了 ...
sarrow
帖子: 403
注册时间: 2007-10-27 1:04

Re: VIM如何只关闭buffer, 但不关闭窗口?

#12

帖子 sarrow » 2012-03-05 10:14

布局的保持,看来是vim的软肋啊!

如果能用脚本,描述当前窗口布局就好了——窗口其实就是一个树形的划分——左子树,右子树。或者“上”子树、“下”子树。

如果能保存上述信息的话,就有办法“回复”布局。

不过,一个buffer,我最多就split两个窗口而已。再多的话,也看不过来啊!
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

Re: VIM如何只关闭buffer, 但不关闭窗口?

#13

帖子 Strange » 2012-03-05 11:37

sarrow 写了:布局的保持,看来是vim的软肋啊!

如果能用脚本,描述当前窗口布局就好了——窗口其实就是一个树形的划分——左子树,右子树。或者“上”子树、“下”子树。

如果能保存上述信息的话,就有办法“回复”布局。

不过,一个buffer,我最多就split两个窗口而已。再多的话,也看不过来啊!
其实有办法恢复的

代码: 全选

:mkview
:loadview
只是不那么好用,但是基本功能还是能很好实现的
ニンニク入れますか?
x60 with gentoo
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: VIM如何只关闭buffer, 但不关闭窗口?

#14

帖子 lilydjwg » 2012-03-05 12:53

sw2wolf 写了:
Strange 写了:看来lz的话不被理解啊,这个一个实际使用中经常会碰到的问题。
用最简单的话来说,就是如何保持已经打开的窗口布局的前提下关闭文件。
仅此而已。
看来大多数人并不太使用split这个功能嘛
是这个意思, 本来分好的窗口布局, 一不小心<:bd>, 又得重新布局了 ...
我很少 :bd,一般都只操作窗口,不管那些 buffer 怎么了。而且,我最多也就开四个窗口,不难重排的。
回复