这里会显示出您选择的修订版和当前版本之间的差别。
— |
linux:vim:buffer [2010/06/02 01:18] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== VIM 缓冲区(Buffer) ====== | ||
+ | |||
+ | <html> | ||
+ | <p>缓冲区(Buffer)是一块内存区域,里面存储着正在编辑的文件。如果没有把缓冲区里的文件存盘,那么原始文件不会被更改。</p><p style="font-weight: bold;">列示缓冲区</p><p><code class="inset">:buffers</code>命令将会列出当前编辑中所有的缓冲区状态。在这个状态列表中,前面的数字是缓冲区的数字标记,第二个标记就是缓冲区当前的状态,紧接着是与缓冲区所关联的文件名。有如下几种状态:</p><p>- (非活动的缓冲区)<br>a (激活缓冲区)<br>h (隐藏的缓冲区)<br>% (当前的缓冲区)<br># (交换缓冲区)<br> = (只读缓冲区)<br>+ (已经更改的缓冲区)</p><p style="text-align: center;"> | ||
+ | <img src="http://farm3.static.flickr.com/2616/3751683098_80d3979da8_o.png" alt="Buffers" height="103" width="385"> </p> | ||
+ | <p style="font-weight: bold;">打开缓冲区</p><p>如果要选择一个缓冲区,可以使用<code class="inset">:buffer number</code>命令,number就是缓冲区状态列表中所显示的数字。我们也可以用文件名来选择缓冲区:<code class="inset">:buffer file</code>。</p> | ||
+ | |||
+ | <p>我们可以用<code class="inset">:sbuffer number</code>命令,来分割当前窗口开始编辑一个缓冲区。如果指明了数字,那么当前窗口就会显示数字所标记的缓冲区中的内容;如果没有指明数字,那么就会显示当前缓冲区的内容。当然,这个命令也可以用文件名来做为参数。</p><p>使用<code class="inset">:ball</code>命令可以为每一个缓冲区打开一个窗口。</p> | ||
+ | |||
+ | <p style="font-weight: bold;">切换缓冲区</p><p><code class="inset">:bnext</code>到下一个缓冲区;<code class="inset">:bprevious</code>或<code class="inset">:bNext</code>到前一个缓冲区;<code class="inset">:blast</code>到最后一个缓冲区;<code class="inset">:bfirst</code>到第一个缓冲区。</p><p style="font-weight: bold;">增加缓冲区</p><p>在编辑的过程中,可以用<code class="inset">:badd filename</code>命令新增一个缓冲区。指定的文件会被加到缓冲区列表中,对这个文件的编辑过程只有切换到那个缓冲区时才会开始。在这个命令中,还可以指明为这个缓冲区打开窗口时,光标所处的位置<code class="inset">:badd +linenum filename</code>。</p><p style="font-weight: bold;">删除缓冲区</p> | ||
+ | |||
+ | <p>可以使用<code class="inset">:bdelete filename</code>、<code class="inset">:bdelete 3</code>或<code class="inset">:3 bdelete</code>命令来删除一个缓冲区。也可以用<code class="inset">:1,3 bdelete</code>命令来删除指定范围的缓冲区。</p><p>如果缓冲区被改动过,那么该命令将失败,除非使用!选项。如果使用了带!选项的<code class="inset">:bdelete! filename</code>命令,那么在缓冲区中的所有改动都会被放弃。</p><p style="font-weight: bold;">卸载缓冲区</p><p>命令<code class="inset">:bunload</code>会从内存中卸载一个缓冲区,所有为这个缓冲区打开的窗口也会关闭。但是这个文件名仍然会存在于缓冲区列表中。如果缓冲区被改动过,那么该命令将失败,除非使用!选项,但是这样所有的改动都会丢失。</p><table summary="Commands" border="2" cellpadding="3" cellspacing="0" frame="hsides" rules="all"><caption>命令小结</caption><tbody><tr><td><code class="inset">:buffers</code></td><td>列示缓冲区状态</td></tr><tr><td><code class="inset">:buffer</code></td><td>编辑指定缓冲区</td></tr><tr><td><code class="inset">:ball</code></td><td>编辑所有缓冲区</td></tr><tr><td><code class="inset">:bnext</code></td><td>到下一缓冲区</td></tr><tr><td><code class="inset">:bprevious</code></td><td>到前一缓冲区</td></tr><tr><td><code class="inset">:blast</code></td><td>到最后一个缓冲区</td></tr><tr><td><code class="inset">:bfirst</code></td><td>到第一个缓冲区</td></tr><tr><td><code class="inset">:badd</code></td><td>增加缓冲区</td></tr><tr><td><code class="inset">:bdelete</code></td><td>删除缓冲区</td></tr><tr><td><code class="inset">:bunload</code></td><td>卸载缓冲区</td></tr></tbody></table> | ||
+ | </html> | ||