-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathlearn-vi-03-yank.html
38 lines (36 loc) · 5.11 KB
/
learn-vi-03-yank.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="learn-vi.css" />
<title>VIM学习笔记 复制和粘贴</title>
</head>
<body>
<p>在Vim中,我们使用寄存器(register)概念进行多次的剪切和粘贴操作。通常编辑器中只有一个剪切板可供使用,而在Vim中最多时可以使用26个剪切板,这样就会大大提高工作的效率。关于寄存器的详细说明<a title="寄存器" href="http://yyq123.blogspot.jp/2010/10/vim-registers.html">请参阅相关章节</a>。</p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">删除文本的保存</p>
<p>当我们使用<code class="inset">d</code>或<code class="inset">x</code>删除文本时,被删除掉的文本并没有被Vim所丢弃,而是被保存在寄存器之中。我们可以使用<code class="inset">p</code>命令来粘贴刚刚所删掉的内容。</p>
<p>下面来看看他是如何工作的。首先随意输入几行文本,然后移动到其中的一行,用dd命令来删掉一行。接着将光标移到任意位置,使用p命令,就会在当前光标的下一行粘贴被删除掉的内容。使用x命令删除的东西也可以粘贴回来。所不同的是在当前光标处之后粘贴。有了这样的命令,我们就可以轻松找回刚刚误删除的内容了。</p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">复制(yank)</p>
<p>在Vim中使用<code class="inset">y</code>命令(yank)进行复制操作。<code class="inset">yw</code>命令可以复制一个单词。<code class="inset">yy</code>命令可以复制一行。我们也可以使用<code class="inset">Y</code>命令来复制一行,或者使用数字做前缀来指定复制多行。使用<code class="inset">y$</code>命令,则可以复制从当前光标到本行结尾的所有字符。</p>
<p>如果我们在某一行用<code class="inset">ma</code>做了标记(mark),那么就可以使用<code class="inset">y'a</code>命令来复制这一行了。关于标记的详细说明<a title="标记" href="http://yyq123.blogspot.com/2011/06/vim-mark.html">请参阅相关章节</a>。</p>
<p style="font-weight:bold; border-bottom:1px solid lightgray; border-left:6px solid lightgray; padding:0 0 3px 5px">粘贴</p>
<p>在完成复制之后,即可以使用p命令进行粘贴。<code class="inset">p</code>命令可以在一个文件中多次使用,每次都可以将刚删除或复制的内容重复粘贴在所希望的地方。当然这个命令也可以使用数字做前缀,明确的指出所要执行的次数。</p>
<p>小写的<code class="inset">p</code>命令是在当前行的下一行进行粘贴,,并将光标移到新插入行的开头处。</p>
<p><a href="https://www.flickr.com/photos/yyq123/30408202406/in/dateposted/" title="p"><img src="https://c2.staticflickr.com/6/5688/30408202406_f27d286f07_o.png" width="500" height="200" alt="p"></a></p>
<p>大写的<code class="inset">P</code>命令则是在当前的上一行进行插入,并将光标移到新插入行的开头处。</p>
<p><a href="https://www.flickr.com/photos/yyq123/30444859205/in/dateposted/" title="P_Capital"><img src="https://c2.staticflickr.com/6/5648/30444859205_25635ce246_o.png" width="500" height="200" alt="P_Capital"></a></p>
<p><code class="inset">gp</code>命令是在当前行的下一行进行粘贴,并将光标移动到新插入行的下一行的开头处。</p>
<p><a href="https://www.flickr.com/photos/yyq123/30408369806/in/dateposted/" title="gp"><img src="https://c2.staticflickr.com/6/5783/30408369806_1807181b7f_o.png" width="500" height="200" alt="gp"></a></p>
<p><code class="inset">gP</code>命令是在当前的上一行进行粘贴,插入后光标移动新插入行的下一行的开头处。</p>
<p><a href="https://www.flickr.com/photos/yyq123/29813988314/in/dateposted/" title="gP_Capital"><img src="https://c1.staticflickr.com/9/8132/29813988314_22970c41af_o.png" width="500" height="200" alt="gP_Capital"></a></p>
<table summary="Commands" border="2" frame="hsides" rules="all" cellspacing="0" cellpadding="3">
<caption>命令小结</caption>
<tr><td><code class="inset">p</code></td><td>在当前光标后粘贴</td></tr>
<tr><td><code class="inset">P</code></td><td>在当前光标前粘贴</td></tr>
<tr><td><code class="inset">yy</code></td><td rowspan="2">复制一行</td></tr>
<tr><td><code class="inset">Y</code></td></tr>
</table>
<p style="border-top:1px solid lightgray"><span style="float:right">Ver: 1.0</span><span><<a title="移动 (Movement)" href="http://yyq123.blogspot.com/2009/02/vim_23.html">上一篇</a> |<a title="笔记列表" href="http://yyq123.github.com/learn-vim/learn-vi-00-List.html"> 目录 </a>| <a title="查找(Find)" href="http://yyq123.blogspot.com/2009/03/vim.html">下一篇</a>></span></p>
</body>
</html>