-
Notifications
You must be signed in to change notification settings - Fork 28
/
learn-vi-46-01-History.html
74 lines (66 loc) · 6.7 KB
/
learn-vi-46-01-History.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!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学习笔记 命令历史记录 (History)</title>
</head>
<body>
<h1>VIM学习笔记 命令历史记录 (History)</h1>
<p>Vim会将命令历史记录,保存在<a href="http://yyq123.github.io/learn-vim/learn-vi-59-01-viminfo.html" title="vimifo">viminfo</a>文件中;通过viminfo和history选项,可以控制存储历史记录的类型和数量;在<a href="http://yyq123.github.io/learn-vim/learn-vi-46-CommandlineMode.html" title="命令行模式(Command-line Mode)">命令行模式</a>和<a href="http://yyq123.blogspot.com/2009/03/vim.html" title="">搜索文本</a>时,则可以重新调用这些历史记录。</p>
<h2 class="article"><a id="history_name">命令历史类型</a></h2>
<p>命令历史可以分为以下几种类型({name}):</p>
<table summary="Commands" border="1" frame="border" rules="all" cellspacing="0" cellpadding="3">
<tr><th style="white-space: nowrap">类型</th><th>标识</th><th>内容</th></tr>
<tr><td><code class="inset">c[md]</code></td><td><code class="inset">:</code></td><td>命令行历史</td></tr>
<tr><td><code class="inset">s[earch]</code></td><td><code class="inset">/ or ?</code></td><td>查找字符串历史</td></tr>
<tr><td><code class="inset">e[xpr]</code></td><td><code class="inset">=</code></td><td>表达式<a href="http://yyq123.github.io/learn-vim/learn-vi-12-Register.html" title="Register">寄存器</a>("=)历史</td></tr>
<tr><td><code class="inset">i[nput]</code></td><td><code class="inset">@</code></td><td>由input()函数输入的历史</td></tr>
<tr><td><code class="inset">d[ebug]</code></td><td><code class="inset">></code></td><td>调试命令历史</td></tr>
<tr><td><code class="inset">a[ll]</code></td><td></td><td>所有类型的历史记录</td></tr>
</table>
<h2 class="article"><a id="history_cmd">查看命令历史</a></h2>
<p>使用以下命令,可以显示命令行历史记录:</p>
<p style="text-indent:2em"><code class="inset">:history</code></p>
<p><a href="https://yyq123.github.io/learn-vim/images/history.png" title="history"><img src="https://yyq123.github.io/learn-vim/images/history.png" alt="history" /></a></p>
<p>使用以下命令,可以显示所有类型的历史记录:</p>
<p style="text-indent:2em"><code class="inset">:history all</code></p>
<p><a href="https://yyq123.github.io/learn-vim/images/history_all_cmd.png" title="history all"><img src="https://yyq123.github.io/learn-vim/images/history_all_cmd.png" alt="history all" /></a></p>
<p>使用以下格式的:history命令,可以查看指定类型和指定数目的历史记录:</p>
<p style="text-indent:2em"><code class="inset">:his[tory] [{name}] [{first}][, [{last}]]</code></p>
<ul>
<li><code class="inset">{name}</code>,指定历史记录<a href="#history_name" title="history_name">类型</a>;</li>
<li><code class="inset">{first}</code>,指定命令历史的起始位置(默认为第一条记录);</li>
<li><code class="inset">{last}</code>,指定命令历史的终止位置(默认为最后一条记录)。</li>
</ul>
<p>如果没有指定 {first} 和 {last},那么将会列出所有命令历史。</p>
<p>如果指定了 {first} 和 {last},那么就会列出指定范围内的历史记录条目。例如以下命令,将列出第一到第五条命令行历史:</p>
<p style="text-indent:2em"><code class="inset">:history c 1,5</code></p>
<p>正数,表示历史记录的绝对索引,也就是:history命令列出的第一列数字。即使历史记录中的其它条目被删除了,该索引数字也会保持不变。例如以下命令,将列出指定位置(第五条)命令行历史:</p>
<p style="text-indent:2em"><code class="inset">:history c 5</code></p>
<p>负数,表示历史记录的相对索引。以最新一条记录 (索引号为 -1) 为基准向后算起。如以下命令,将列出所有历史记录中倒数第二条记录:</p>
<p style="text-indent:2em"><code class="inset">:history all -2</code></p>
<p>使用以下命令,则会列出所有历史记录中最近的两条记录:</p>
<p style="text-indent:2em"><code class="inset">:history all -2,</code></p>
<p>使用以下命令,可以查看:history命令的帮助信息:</p>
<p style="text-indent:2em"><code class="inset">:help :history</code></p>
<h2 class="article"><a id="history_del">删除历史记录</a></h2>
<p>使用以下命令,可以删除命令行历史记录:</p>
<p><code class="inset">:call histdel("")</code></p>
<p>可以删除指定类型的历史记录。例如使用以下命令,将删除所有查询历史记录:</p>
<p><code class="inset">:call histdel("seach")</code></p>
<p>您也可以直接编辑<a href="http://yyq123.github.io/learn-vim/learn-vi-59-01-viminfo.html" title="vimifo">viminfo</a>文件,直接删除其中的历史记录。请注意,需要重启Vim,以重新读取修改后的viminfo文件。</p>
<h2 class="article"><a id="history_options">命令历史选项</a></h2>
<p>通过history选项,可以控制记录历史记录的数量(默认为50)。例如以下命令,设置保存1000条命令历史记录:</p>
<p><code class="inset">:set history=1000</code></p>
<p>请注意:在<a href="http://yyq123.github.io/learn-vim/learn-vi-59-01-viminfo.html" title="vimifo">viminfo</a>选项中,也有命令历史相关参数;请在<a href="http://yyq123.github.io/learn-vim/learn-vi-59-vimrc.html" title="vimrc">vimrc</a>配置文件中,检查'viminfo'和'history'设置的的一致性和优先级。</p>
<table summary="Commands" border="2" frame="hsides" rules="all" cellspacing="0" cellpadding="3">
<caption>命令小结</caption>
<tr><td><code class="inset">:history</code></td><td>显示命令行历史记录</td></tr>
<tr><td><code class="inset">:history all</code></td><td>显示所有类型的历史记录</td></tr>
<tr><td><code class="inset">:set history</code></td><td>设置报错历史记录的数量</td></tr>
</table>
<p style="border-top:1px solid lightgray"><span style="float:right">Ver: 2.0 | <a href="mailto:[email protected]">YYQ</a></span><span><<a title="命令行模式(Command-line Mode)" href="http://yyq123.github.io/learn-vim/learn-vi-46-CommandlineMode.html">上一篇</a> |<a title="笔记列表" href="http://yyq123.github.com/learn-vim/learn-vi-00-00-TOC.html"> 目录 </a>| <a title="viminfo" href="http://yyq123.github.io/learn-vim/learn-vi-59-01-viminfo.html">下一篇</a>></span></p>
</body>
</html>