vim学习高级技巧之序列的生成方法详解
<p><span><strong>前言</strong></span></p>
<p>
本文主要给大家介绍了关于在vim中插入数字序列的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。</p>
<p>
<span><strong>待处理文本</strong></span></p>
<p>
<strong>假设文本原来内容是</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_674447">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">这是第一行</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">这是第二行</code>
</div>
<div class="line number3 index2 alt2">
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">这是第四行</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">这是第五行</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>插入行号变成</strong></span></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_763136">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">1 这是第一行</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">2 这是第二行</code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">3</code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">4 这是第四行</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">5 这是第五行</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>还有一种想要的效果是</strong></span></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_429865">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">这是第一行 line</code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">这是第二行 line</code>
</div>
<div class="line number3 index2 alt2">
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">这是第三行 line</code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">这是第四行 line</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
下文会对上面两种需求都给出答案,利用下面提到的方法其实远可以实现更复杂的数字序列插入。包括替换指定字符,并在后面依次跟上序列数字。</p>
<p>
<span><strong>使用line()</strong></span></p>
<p>
<code>line('.')</code>可以返回当前行号</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_688463">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:g/^</code><code class="bash plain">/s//</code><code class="bash plain">\=line(</code><code class="bash string">'.'</code><code class="bash plain">).</code><code class="bash string">' '</code><code class="bash plain">/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
非常简单,但不太灵活,只能用于显示当前行的行号</p>
<p>
<span><strong>使用ex命令</strong></span></p>
<p>
vim提供了一些可以打印行号的ex命令,如"=", "p # ", "#"</p>
<p>
为了获取vim的命令输出,这里需要使用redir</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_589879">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">"为前5行加上行号</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">:redir @a | 1,5</code><code class="bash comments">#|redir END</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">:1,5d | put! a |1d |6d</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
在粘贴后在前后都多出一行,所以要用d来删除</p>
<p>
<span><strong>使用range, setline, getline</strong></span></p>
<p>
<code>range()</code>可以产生数字序列列表</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_998772">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:</code><code class="bash keyword">for</code> <code class="bash plain">i </code><code class="bash keyword">in</code> <code class="bash plain">range(6)</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">:call setline(i, i.</code><code class="bash string">' '</code><code class="bash plain">.getline(i))</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">:endfor</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<code>range(6)</code>会产生数字列表1-5, 不包含6</p>
<p>
<span><strong>变量积加</strong></span></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_244237">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">: </code><code class="bash functions">let</code> <code class="bash plain">i=1 | g/^</code><code class="bash plain">/s//</code><code class="bash plain">\=i.</code><code class="bash string">' '</code><code class="bash plain">/ | </code><code class="bash functions">let</code> <code class="bash plain">i=i+1</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
这种方法更灵活,可以通过控制i的值变化来控制插入的值</p>
<p>
<span><strong>宏和Ctrl-A</strong></span></p>
<p>
可以在数字上按ctrl-A来让数字加一, Ctrl-X让数字减一</p>
<p>
过程如下:</p>
<ul>
<li>
手工添加第一行的序号和空格</li>
<li>
输入0"ayw将序号和空格放到寄存器a中</li>
<li>
移到下一行,执行下面按键</li>
</ul>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_205676">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">qz0</code><code class="bash string">"aP0^A"</code><code class="bash plain">ayawjq</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
执行<code>4@z</code>来在下面4行执行保存在寄存器z中的命令序列</p>
<p>
上面命令序列的详细解释如下</p>
<ul>
<li>
qz: 开始录制宏,保存在寄存器z中</li>
<li>
0: 移到行首</li>
<li>
“aP: 把寄存器a中的内容(行号和空格)粘贴到这里</li>
<li>
0^A: 移到行首,按下ctrl-A来使当前光标下的数字加一</li>
<li>
"ayaw: 把当前光标下的word复制到寄存器a中</li>
<li>
j:移到下一行</li>
<li>
q: 录制结束</li>
</ul>
<p>
如果没有空格做标志,那么就不能用aw来复制一个word,要用v来选择相应数字部分</p>
<p>
<span><strong>注意:</strong></span>在命令行下, ctrl-a需要用ctrl-v, ctrl-a来表示这个按键</p>
<p>
在vim下宏比较强大,但一般要写出一个可行的宏需要很多次调试</p>
<p>
<span><strong>外部命令</strong></span></p>
<p>
seq是linux下输出序列的命令</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_688137">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">harriszh Sat 22:14@ ~</code><code class="bash plain">/trunk/go</code><code class="bash plain">$ </code><code class="bash functions">seq</code> <code class="bash plain">5 -2 1</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">5</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">3</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">1</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">harriszh Sat 22:14@ ~</code><code class="bash plain">/trunk/go</code><code class="bash plain">$ </code><code class="bash functions">seq</code> <code class="bash plain">1 5</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">1</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">2</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash plain">3</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">4</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">5</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">harriszh Sat 22:14@ ~</code><code class="bash plain">/trunk/go</code><code class="bash plain">$ </code><code class="bash functions">seq</code> <code class="bash plain">1 2 5</code>
</div>
<div class="line number12 index11 alt1">
<code class="bash plain">1</code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">3</code>
</div>
<div class="line number14 index13 alt1">
<code class="bash plain">5</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
三个参数的话,中间参数是step,两个参数的话就是开始数字和结束数字,step为1</p>
<p>
通过<code>r !seq 1 5</code>来在文件中插入数字序列, 然后用列模式拷贝使用</p>
<p>
<span><strong>使用printf</strong></span></p>
<p>
<strong>直接插入行号</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_841382">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:%s/^/\=</code><code class="bash functions">printf</code><code class="bash plain">(</code><code class="bash string">'%-4d'</code><code class="bash plain">, line(</code><code class="bash string">'.'</code><code class="bash plain">))</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
其中-是左对齐,默认右对齐</p>
<p>
<strong>在指定行插入序列</strong></p>
<p>
首先中V来选择要插入序号的块</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_553847">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:</code><code class="bash string">'<,'</code><code class="bash plain">>s/^/\=</code><code class="bash functions">printf</code><code class="bash plain">(</code><code class="bash string">"%-4d. "</code><code class="bash plain">, line(</code><code class="bash string">"."</code><code class="bash plain">)-line(</code><code class="bash string">"'<"</code><code class="bash plain">)+1)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>只在非空行插入序列</strong></p>
<p>
将下面func放入到.vimrc里</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_622555">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash keyword">function</code> <code class="bash plain">Inc(...)</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code><code class="bash functions">let</code> <code class="bash plain">result = g:i</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash spaces"> </code><code class="bash functions">let</code> <code class="bash plain">g:i += a:0 > 0 ? a:1 : 1</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code><code class="bash keyword">return</code> <code class="bash plain">result</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">endfunction</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<code>a:0</code>相当于<code>argc</code>, <code>a:1</code>相当于<code>argv</code></p>
<p>
g:i是全局变量i</p>
<p>
然后选中相应块</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_390716">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:</code><code class="bash functions">let</code> <code class="bash plain">i = 1</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">:</code><code class="bash string">'<,'</code><code class="bash plain">>g/^\S</code><code class="bash plain">/s/</code><code class="bash plain">^/\=</code><code class="bash functions">printf</code><code class="bash plain">(</code><code class="bash string">"%4d. "</code><code class="bash plain">, Inc())</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>range和print</strong></span></p>
<p>
下面三条命令都是在指定行下面插入序列</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_226218">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:12put = range(1,5)</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">:call append(12, range(1,5))</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">:0put = range(3,7)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
第一条命令和第二条等价</p>
<p>
0put的话,就在第一行前</p>
<p>
range和print相结合可以输出格式化的结果</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_873126">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:0put = map(range(1,5), </code><code class="bash string">'printf('</code><code class="bash string">'%04d'</code><code class="bash string">', v:val)'</code><code class="bash plain">)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
v:val代表前面列表中取出的值</p>
<p>
直接使用for更清晰易懂些</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_95957">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:</code><code class="bash keyword">for</code> <code class="bash plain">i </code><code class="bash keyword">in</code> <code class="bash plain">range(1,10) | put = </code><code class="bash string">'192.168.0.'</code><code class="bash plain">.i | endfor</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>特定字符后加序列号</strong></span></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_851100">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:</code><code class="bash functions">let</code> <code class="bash plain">i=1|g</code><code class="bash plain">/abc/s//</code><code class="bash plain">\=</code><code class="bash string">'abc_'</code><code class="bash plain">.i/ | </code><code class="bash functions">let</code> <code class="bash plain">i= i+1</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
但上面命令有个问题,如果一行有多个abc, 那么都替换成一样的数字,而不会递增</p>
<p>
要解决上面的问题可以使用寄存器</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_503175">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">:</code><code class="bash functions">let</code> <code class="bash plain">@a=1 | %s</code><code class="bash plain">/abc/</code><code class="bash plain">\=</code><code class="bash string">'abc_'</code><code class="bash plain">.(@a+setreg(</code><code class="bash string">'a'</code><code class="bash plain">,@a+1))</code><code class="bash plain">/g</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
setreg()回返回0,所以利用上面的方法来调用setreg来更新寄存器a的值</p>
<p>
<span><strong>vim8的ctrl-a</strong></span></p>
<p>
vim8对Ctrl-A提供了新功能</p>
<p>
比如有</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_967249">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">my_array = 0;</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">my_array = 0;</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">my_array = 0;</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">my_array = 0;</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">my_array = 0;</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">my_array = 0;</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">my_array = 0;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
用ctrl-V列选中0-0, 然后按g Ctrl-A,</p>
<p>
列选中前面的0-6, 然后也按g Ctrl-A</p>
<p>
最终结果是</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_182326">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">my_array = 1;</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">my_array = 2;</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">my_array = 3;</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">my_array = 4;</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">my_array = 5;</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">my_array = 6;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<code>g Ctrl-A</code>的原理是在第一数字上加1, 第二个数字上加2, 第三个数字上加3...</p>
<p>
<span><strong>插件VisIncr</strong></span></p>
<p>
主要命令有I, II, IYMD, IMDY, IA,ID, IO, IR, IX</p>
<p>
支持数字,日期,字母|表,罗马数字,八进制,十六进制的递增递减</p>
<p>
<strong>:IX</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :IX</th>
</tr></thead>
<tbody>
<tr>
<td>
8</td>
<td>
8</td>
</tr>
<tr>
<td>
8</td>
<td>
9</td>
</tr>
<tr>
<td>
8</td>
<td>
a</td>
</tr>
<tr>
<td>
8</td>
<td>
b</td>
</tr>
<tr>
<td>
8</td>
<td>
c</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:I </strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :I</th>
</tr></thead>
<tbody>
<tr>
<td>
8</td>
<td>
8</td>
</tr>
<tr>
<td>
8</td>
<td>
9</td>
</tr>
<tr>
<td>
8</td>
<td>
10</td>
</tr>
<tr>
<td>
8</td>
<td>
11</td>
</tr>
<tr>
<td>
8</td>
<td>
12</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:I -1 </strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :I -1</th>
</tr></thead>
<tbody>
<tr>
<td>
8</td>
<td>
8</td>
</tr>
<tr>
<td>
8</td>
<td>
7</td>
</tr>
<tr>
<td>
8</td>
<td>
6</td>
</tr>
<tr>
<td>
8</td>
<td>
5</td>
</tr>
<tr>
<td>
8</td>
<td>
4</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:II</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :II</th>
</tr></thead>
<tbody>
<tr>
<td>
8</td>
<td>
8</td>
</tr>
<tr>
<td>
8</td>
<td>
9</td>
</tr>
<tr>
<td>
8</td>
<td>
10</td>
</tr>
<tr>
<td>
8</td>
<td>
11</td>
</tr>
<tr>
<td>
8</td>
<td>
12</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:II -1</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :II -1</th>
</tr></thead>
<tbody>
<tr>
<td>
8</td>
<td>
8</td>
</tr>
<tr>
<td>
8</td>
<td>
7</td>
</tr>
<tr>
<td>
8</td>
<td>
6</td>
</tr>
<tr>
<td>
8</td>
<td>
5</td>
</tr>
<tr>
<td>
8</td>
<td>
4</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:IMDY</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :IMDY</th>
</tr></thead>
<tbody>
<tr>
<td>
06/10/03</td>
<td>
6/10/03</td>
</tr>
<tr>
<td>
06/10/03</td>
<td>
6/11/03</td>
</tr>
<tr>
<td>
06/10/03</td>
<td>
6/12/03</td>
</tr>
<tr>
<td>
06/10/03</td>
<td>
6/13/03</td>
</tr>
<tr>
<td>
06/10/03</td>
<td>
6/14/03</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:IYMD </strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :IYMD</th>
</tr></thead>
<tbody>
<tr>
<td>
03/06/10</td>
<td>
03/06/10</td>
</tr>
<tr>
<td>
03/06/10</td>
<td>
03/06/11</td>
</tr>
<tr>
<td>
03/06/10</td>
<td>
03/06/12</td>
</tr>
<tr>
<td>
03/06/10</td>
<td>
03/06/13</td>
</tr>
<tr>
<td>
03/06/10</td>
<td>
03/06/14</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:IDMY</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :IDMY</th>
</tr></thead>
<tbody>
<tr>
<td>
10/06/03</td>
<td>
10/06/03</td>
</tr>
<tr>
<td>
10/06/03</td>
<td>
11/06/03</td>
</tr>
<tr>
<td>
10/06/03</td>
<td>
12/06/03</td>
</tr>
<tr>
<td>
10/06/03</td>
<td>
13/06/03</td>
</tr>
<tr>
<td>
10/06/03</td>
<td>
14/06/03</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:ID</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :ID</th>
</tr></thead>
<tbody>
<tr>
<td>
Sun</td>
<td>
Sun</td>
</tr>
<tr>
<td>
Sun</td>
<td>
Mon</td>
</tr>
<tr>
<td>
Sun</td>
<td>
Tue</td>
</tr>
<tr>
<td>
Sun</td>
<td>
Wed</td>
</tr>
<tr>
<td>
Sun</td>
<td>
Thu</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:ID</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :ID</th>
</tr></thead>
<tbody>
<tr>
<td>
Sunday</td>
<td>
Sunday</td>
</tr>
<tr>
<td>
Sunday</td>
<td>
Monday</td>
</tr>
<tr>
<td>
Sunday</td>
<td>
Tuesday</td>
</tr>
<tr>
<td>
Sunday</td>
<td>
Wednesday</td>
</tr>
<tr>
<td>
Sunday</td>
<td>
Thursday</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:IA </strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :IA</th>
</tr></thead>
<tbody>
<tr>
<td>
a</td>
<td>
a</td>
</tr>
<tr>
<td>
a</td>
<td>
b</td>
</tr>
<tr>
<td>
a</td>
<td>
c</td>
</tr>
<tr>
<td>
a</td>
<td>
d</td>
</tr>
<tr>
<td>
a</td>
<td>
e</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:IO</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :IO</th>
</tr></thead>
<tbody>
<tr>
<td>
5</td>
<td>
5</td>
</tr>
<tr>
<td>
5</td>
<td>
6</td>
</tr>
<tr>
<td>
5</td>
<td>
7</td>
</tr>
<tr>
<td>
5</td>
<td>
10</td>
</tr>
<tr>
<td>
5</td>
<td>
11</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<strong>:IR</strong></p>
<p>
</p>
<table>
<thead><tr>
<th>
Original</th>
<th>
Select, :IR</th>
</tr></thead>
<tbody>
<tr>
<td>
II</td>
<td>
II</td>
</tr>
<tr>
<td>
II</td>
<td>
III</td>
</tr>
<tr>
<td>
II</td>
<td>
IV</td>
</tr>
<tr>
<td>
II</td>
<td>
V</td>
</tr>
<tr>
<td>
II</td>
<td>
VI</td>
</tr>
</tbody>
</table>
<p>
</p>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
原文链接:https://segmentfault.com/a/1190000011104777</p>
頁:
[1]