繁体   English   中英

如何在VIM中重新分配缓冲区编号?

[英]How can I reassign a buffer number in VIM?

我曾经以为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 buffer faq似乎证实了这一点。

但是我不想相信vim确实有这个限制,是不是真的没有办法从vim中做到这一点?

您无法在同一会话中重新分配缓冲区编号。 最好的办法是环顾四周的替代品。

一个缓冲区浏览器处理对最近使用的文件(并且可以删除缓冲区)的排序是Buffer Explorer / Browser

vim.org上有许多其他缓冲区切换脚本,可以满足各种作者的需求。 或者你可以使用一些映射来自己滚动。

我为Django想出了这个。

http://code.djangoproject.com/wiki/UsingVimWithDjango#Mappings

它使我能够快速地对相对于app目录的20个标准命名文件进行两次/三次击键访问。 你可以在这些方面为你的项目想出一些东西。

我的映射是\\1\\2\\3等,所以数字范例仍然存在。

我还为〜/ .vimrc映射了\\vr ,为〜/ .bashrc映射了\\vr \\br

重要的是它可以而且应该是一个非常有效的过程。

这是一种懒惰的方式(不需要学习新东西):

  • 将会话保存到当前工作目录中的文件或您希望工作的任何位置:
:mksession Session.vim
  • 编辑Session.vim。 找到打开的缓冲区列表(以badd开头的badd )。

  • 根据自己的喜好重新排列线条。

  • 关闭vim。

  • 使用-S标志和会话文件启动vim:

$> gvim -S Session.vim

您的缓冲区将按照您放置的顺序按顺序重新编号。

我建议改用标签(来自vim 7)。 您可以使用tabm自由移动它们,并使用tabetabnew打开新的。 此外,更明显的是发生了什么。 你也可以使用-p (IIRC)打开一堆标签来启动vim。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM