欢迎各位兄弟 发布技术文章
这里的技术是共享的
Vim 编辑器使用术语 "缓冲区" 来描述编辑当中的文件。实际上,缓冲区是你编辑的文件
的副本。你修改完缓冲区,就把缓冲区的内容写进文件。缓冲区不仅存放文件内容,而且
还存放着全部标记,设定,以及其它跟被编辑文件相关的东西。
隐 藏 的 缓 冲 区
假设你在编辑文件 one.txt,同时又要编辑文件 two.txt。你本来可以简单地用 ":edit
two.txt" 来办到,但由于你已经修改了 one.txt,那样做就没用了。而你又不想在此时
就把 one.txt 存盘。Vim 可以为你解决这个问题: :hide edit two.txt
缓冲区 "one.txt" 从屏幕消失,但 Vim 仍然知道你在编辑这个缓冲区,因而保留着它修
改过的文本。这样的缓冲区称为隐藏的缓冲区: 缓冲区存放着文本,但你看不见它。
命令 ":hide" 的参数是另一个命令。它使得那个命令表现得就像 'hidden' 选项已被
设定。你也可以不用 ":hide" 命令而设定 'hidden' 选项。其作用是当离开任何缓冲区
时,该缓冲区变成隐藏。
小心!当你的隐藏的缓冲区已经改动,千万不要在所有缓冲区存盘之前就退出 Vim。
非 激 活 缓 冲 区
一个缓冲区一经使用,Vim 就记住了一些有关该缓冲区的信息。即使它既不显示在窗
口内,又非隐藏缓冲区,它也仍然在缓冲区列表上。这样的缓冲区称为非激活缓冲区。一
般而言,
激活 显示在窗口内,并加载文本
隐藏 不显示在窗口内,但加载文本
非激活 不显示在窗口内,不加载文本
非激活缓冲区不会被遗忘,因为 Vim 保存着关于它们的信息,如标记等。而且记住文件
名有个好处,你可以调阅你编辑过的文件名,再次编辑它们。
缓 冲 区 列 表
你可以用这个命令查看缓冲区列表:
:buffers
另一个作用相当的命令,虽然意思不那么明白,但键入时省事多了: :ls
其输出可能像这样:1 #h "help.txt" line 62
2 %a+ "usr_21.txt" line 1
3 "usr_toc.txt" line 1
第一栏存放缓冲区号。你可以利用它来编辑文件,而不用键入文件名,参见下文。
紧随缓冲区号的是些标志位。然后是文件名,以及光标最后一次停留的行号。
可能出现的标志位有以下这些 (自左至右):
u 列表外缓冲区 |unlisted-buffer|。
% 当前缓冲区。
# 轮换缓冲区。
a 激活缓冲区,缓冲区被加载且显示。
h 隐藏缓冲区,缓冲区被加载但不显示。
= 只读缓冲区。
- 不可改缓冲区, 'modifiable' 选项不置位。
+ 已修改缓冲区。
编 辑 缓 冲 区
你可以通过指定其缓冲区号来编辑一个缓冲区,而不必键入文件名: :buffer 2
但获知缓冲区号的唯一途径是查阅缓冲区列表。如果不用缓冲区号,你可以用文件名,或
其部分:
:buffer help
Vim 将为你键入的文件名找到最佳匹配。如果只有一个缓冲区与之匹配,该缓冲区就被选
用。在这个例子中,被选中的就是 "help.txt"。
要在新窗口中打开一个缓冲区:
:sbuffer 3
这方法也适用于文件名。
使 用 缓 冲 区 列 表
你可以用这些命令在缓冲区列表间移动:
:bnext 编辑下一个缓冲区
:bprevious 编辑前一个缓冲区
:bfirst 编辑第一个缓冲区
:blast 编辑最后一个缓冲区
要从缓冲区列表上删除一个缓冲区,用这个命令:
:bdelete 3
同样,这命令也适用文件名。
如果你删除了一个激活的缓冲区 (显示在窗口中的缓冲区),你也就关闭了该窗口。如
果你删除了当前缓冲区,你也就关闭了当前窗口。如果它是最后一个窗口,Vim 将找一个
缓冲区来编辑。你无法什么也不编辑!
备注
:
即使用 ":bdelete" 命令删除了缓冲区以后,Vim 依然记得它。这个缓冲区实际
上成了 "列表外" 缓冲区,它不再出现在 ":buffers" 命令所报告的列表中。不
过 ":buffers!" 命令仍会列出 "列表外" 缓冲区 (没错,Vim 无所不能)。要让
Vim 彻底忘记一个缓冲区,用 ":bwipe" 命令。另见 'buflisted' 选项。
来自 https://blog.csdn.net/fudesign2008/article/details/7295138