我曾经以为vim是强大的,直到我想要清除列表中的缓冲区并将其重用于其他内容。例如,如果我有
1 "f1.h" 2 "f2.h" 3 "f3.h" 4 "f1.cpp" 5 "f2.cpp" 6 "f3.cpp"
我想用其他东西替换f1.h - f3.h,但是在相同的缓冲序列中:
1 "n1.h" 2 "n2.h" 3 "n3.h" 4 "f1.cpp" 5 "f2.cpp" 6 "f3.cpp"
我无法弄明白该怎么做。我可以做“1,3bd”并删除缓冲区1-3,甚至“1,3bw”并将它们擦除,但是没有重新启动vim就看不到重用这些数字的方法。 http://vim.wikia.com/wiki/Vim_buffer_FAQ处的vim缓冲区常见问题似乎证实了这一点。
但是我不想相信vim确实有这个限制,是不是真的没办法从vim中做到这一点?
答案 0 :(得分:6)
您无法在同一会话中重新分配缓冲区编号。最好的办法是环顾四周的替代品。
一个缓冲区资源管理器处理对最近使用过的文件的排序(并且可以删除缓冲区)是Buffer Explorer / Browser。
vim.org上有许多其他缓冲区切换脚本可满足各种作者的需求。或者你可以使用一些映射来自己滚动。
我为Django想出了这个。
http://code.djangoproject.com/wiki/UsingVimWithDjango#Mappings
它让我快速两次/三次击键访问相对于app目录的20个标准命名文件。你可以在这些方面为你的项目想出一些东西。
我的映射是\1
,\2
,\3
等,因此数字范例仍然存在。
我还为〜/ .vimrc 和\vr
映射了{em}〜/ .bashrc 的\br
。
重要的是它可以而且应该是一个非常有效的过程。
答案 1 :(得分:3)
这是一种懒惰的方式(不需要学习新东西):
:mksession Session.vim
编辑Session.vim。找到打开的缓冲区列表(以badd
开头的行)。
根据您的喜好重新排列。
关闭vim。
使用-S
标志和会话文件启动vim:
$> gvim -S Session.vim
您的缓冲区将按照您添加的顺序按顺序重新编号。
答案 2 :(得分:0)
我建议改用标签(来自vim 7)。您可以使用tabm
自由移动它们,并使用tabe
或tabnew
打开新的-p
。此外,更明显的是发生了什么。你也可以使用{{1}}(IIRC)打开一堆标签来启动vim。