VIM

您所在的位置:网站首页 如何删除vim的所有内容文件 VIM

VIM

2024-07-14 12:59| 来源: 网络整理| 查看: 265

VIM-如何删除缓冲区? 原创

perfect_cto 2010-05-07 14:12:12 博主文章分类:Vim ©著作权

文章标签 职场 休闲 VIM 缓冲区 文章分类 网络安全

©著作权归作者所有:来自51CTO博客作者perfect_cto的原创作品,请联系作者获取转载授权,否则将追究法律责任 先来实在的,个人用法:1、:ls   列出所有缓冲区2、:bdelete #numb     删除所要关闭的缓冲区以下为 VIM 手册中的描述:Vim编辑器使用缓冲区这个词来描述被编辑的文件. 事实上, 一个缓

冲区是一个被编辑文件的副本. 通常你会在完成对一个缓冲区的编辑后保存该文件. 缓冲区不仅包含了文件的内容, 它也记录了该缓冲区中所有的标记, 设置以及其它跟缓冲区有关的东西.

隐藏缓冲区

假设你正在编辑文件"one.txt"现在需要转而编辑"two.txt". 你可

能会直接使用":edit two.txt"命令, 但是你已经对"one.txt"作出了改动, 所以这一命令会失败, 同时你又不希望现在就保存文件"one.txt"的内容. Vim对此的解决方案是:

:hide edit two.txt

缓冲区"one.txt"从屏幕上消失, 但Vim保存了它的当前状态. 这叫

做隐藏缓冲区: 缓冲区中确有内容但你看不到它.

":hide"命令的参数是另一个命令. 它使该命令工作于°hidden° 选项被设置的状态. 你也可以自行设置该选项. 其效果是当你的缓冲区看似被丢弃时, 它实际上只是隐藏了起来2

1译: 还记得吗? 想垂直分隔窗口的话可以用:vertical sfind

2译: 规律: hide与vertical都是这样的特殊命令, 它们以一个完整的命令作为参数, 只是以一种方式影响该命令的执行, 同时此类命令并非对所有命令都有效, 它只对那些涉及其影响效果的命令起使用, 如vertical命令只是影响新开窗口的布局, 是水平的还是垂直的.这样它对那些根本不会打开窗口的命令就形同虚设

小心! 如果你当前有一些被修改内容尚未保存的隐藏缓冲区时, 不

要草草地退出Vim 1

非活动缓冲区

一旦一个缓冲区曾被编辑过, Vim就会记下它的一些信息. 这样当它

不显示在窗口中并且又不是一个隐藏缓冲区时, 它还是会被保留在缓冲区列表中. 这叫非活动缓冲区. 缓冲区的大致类别如下:

Active 出现在窗口中, 内容被载入

Hidden 不显示在窗口中, 但内容被载入

Inactive 不出现在窗口中, 内容也未被载入

非活动缓冲区仍被记录在案, 因为Vim保留了它的相关信息, 比如在

其中定义的标记和它的文件名. 这样你可以看到曾经编辑过了哪些文件,也可以再次打开它们.

显示缓冲区列表

下面的命令可以列出整个缓冲区列表:

:buffers

命令

:ls

与:buffers完全相同, 只是看起来没那么顾名思义, 它的优点是命令本身

很短2 结果形如:

1 #h "help.txt" line 62

2 %l+ "usr_21.txt" line 1

3 "usr_toc.txt" line 1

第一列是缓冲区编号. 你可以在编辑该文件时以此代替文件名, 见下文. 缓冲区编号之后是缓冲区类型标志字符. 然后是文件名和上次退出时光标所在的行号. 可能的缓冲区类型标志字符如下(从左到右):

1译: 真要这样退出时Vim还是会提醒你有缓冲区的内容已被改变但尚未保存, 除非你

声明自己负全责: :qa! 或:wqa

2译: (1)ls之于ls就象:grep之于grep, 完全不同! (2)Vim中有很多这样的折衷, 以较短的命令换取更具描述性的命令名

u 未被列出的缓冲区|unlisted-buffer|[[译: 既然未被列出你又怎么知道? :ls! % 当前缓冲区

# 上一次的活动缓冲区

l 被载入并显示在某窗口中的缓冲区

h 被载入但隐藏的缓冲区.

= 只读的缓冲区

- 不可编辑的缓冲区, 其中°modifiable°选项被关闭

+ 有改动的缓冲区

编辑一个缓冲区

你可以以缓冲区编号指定要编辑的缓冲区. 这可以免于键入其文件

名:

:buffer 2

但是要知道缓冲区编辑的唯一办法就是查找缓冲区列表. 这本身需要执行另一个命令. 你可以用文件名或部分文件名1:

:buffer help

Vim会根据键入的部分文件名选择一个最为相近的缓冲区. 如果只有

一个缓冲区符合条件, 就那直接使用该缓冲区, 本例是"help.txt".

要在一个新窗口中打开一个缓冲区使用命令:

:sbuffer 3

当然这一命令也可以使用文件名.

使用缓冲区列表

你可以用下面的命令来遍历整个缓冲区列表:

:bnext 跳转到下一个缓冲区

:bprevious 跳转到前一个缓冲区

:bfirst 跳转到第一个缓冲区

:blast 跳转到最后一个缓冲区

1译: 可以看作Vim自动进行了命令补齐, 此时的命令补齐并不要求已经键入的文件名

一定是最终文件名的开头字符, 如对于文件filename.txt, 你可以键name然后使用命令补齐, 但同样也可以不用命令补齐, Vim根据键入的部分文件名选择一个最相近的缓冲区

要把一个缓冲区从列表中去除, 可以用命令:

:bdelete 3

同样, 可以使用文件名1.

如果被删除的缓冲区是活动缓冲区(也就是说被显示在另一口), 它

所在的窗口就会被关闭. 如果你删除的是当前缓冲区, 它所在的窗口也会被关闭. 如果它是最后一个窗口. Vim就会另找一个缓冲区显示在该

窗口中. 总不至于让你因此什么都没得编辑.

备注: 即使是用":bdelete"命令删除了一个缓冲区Vim还

是会记住它. 实际上它被打入"unlisted"列表中,

不再显示在":buffers"命令显示的缓冲区列表中.

但":buffers!"还是会让它再度现身(是的, Vim可以完成Misson Impossible). 要彻底清除一个缓冲区, 要使

用":bwipe". 同时请参考°buflisted°选项.

收藏 评论 分享 举报

下一篇:VIM 个人学习笔记



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3