Vim 的纵向编辑模式

论坛 期权论坛     
选择匿名的用户   2021-5-26 13:29   476   0
<p> </p>
<p><a name="major1"><span class="atitle"><strong><span style="font-family: mceinline;">开始之前</span></strong></span></a></p>
<p><span style="font-family: mceinline;">人类大脑对文字的处理是平面式的,所以我们浏览文章、查找资料或者重构代码,要么是横向读,要么是纵向读,要么使用搜索功能,将文字作为一个平面整体。而在编辑文字、编写代码的时候则不是横向就是纵向。常规文本编辑器都是横向编辑,而纵向编辑也常被作为特色功能。比如 Vim、EditPlus、UltraEdit 这些编辑器都有纵向编辑模式,或者称为列模式。像日常文字处理工具 MicroSoft Word、OpenOffice Writer 也可以通过按下功能键 ALT,实现纵向选中文本,然后对文本进行操作。纵向编辑不仅是编辑器的一种功能,更是人们思考问题的一种方式,项目符号、段落编号,都是纵向编辑的体现。</span></p>
<p><span style="font-family: mceinline;">Vim 的纵向编辑模式启动方便,使用灵活,还可以配合上插件实现很实用的高级功能。</span></p>
<p class="ibm-ind-link ibm-back-to-top"><span style="font-family: mceinline;"><br></span></p>
<p><a name="major2"><span class="atitle"><strong><span style="font-family: mceinline;">启动方法</span></strong></span></a></p>
<p><span style="font-family: mceinline;">在 Vim 命令模式下,移动游标定位于某一个位置,键入 </span><code><span style="font-family: mceinline;">ctrl-v</span></code><span style="font-family: mceinline;">后状态栏上出现 VISUAL BLOCK 字样,即进入纵向编辑模式。移动游标以按需选择待编辑的区域。注意:在 Windows 版本的 Vim 中,键组合 </span><code><span style="font-family: mceinline;">ctrl-v</span></code><span style="font-family: mceinline;">通常被映射为文本粘贴,所以 Window 版的 Vim 的纵向编辑模式由 </span><code><span style="font-family: mceinline;">ctrl-q</span></code><span style="font-family: mceinline;">启动。当然灵活的 Vim 也可以由用户自行定义组合键。</span></p>
<p class="ibm-ind-link ibm-back-to-top"><span style="font-family: mceinline;"><br></span></p>
<p><a name="major3"><span class="atitle"><span style="font-family: mceinline;">示例 1:纵向编辑在批量修改代码的应用演示</span></span></a></p>
<p><span style="font-family: mceinline;">将数列:</span></p>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%;"><tbody><tr><td class="code-outline"> <pre class="displaycode"><span style="font-family: mceinline;"> 10.1.5.214
10.1.5.212
10.1.5.210
</span></pre> </td></tr></tbody></table>
<span style="font-family: mceinline;"><br></span>
<p><span style="font-family: mceinline;">编辑成序列:</span></p>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%;"><tbody><tr><td class="code-outline"> <pre class="displaycode"><span style="font-family: mceinline;"> ping -c 4 10.5.5.214 &gt;&gt; result0
ping -c 4 10.5.5.212 &gt;&gt; result0
ping -c 4 10.5.5.210 &gt;&gt; result0
</span></pre> </td></tr></tbody></table>
<span style="font-family: mceinline;"><br></span>
<p><span style="font-family: mceinline;">这是一个将 IP 数列修改成可执行的 ping 命令序列的过程。</span></p>
<p><a name="minor3.1"><span class="smalltitle"><strong><span style="font-family: mceinline;">第一步:修改</span></strong></span></a></p>
<p><span style="font-family: mceinline;">将 IP 数列中第二段所有数字“1” 修改为“5”:</span></p>
<p><span style="font-family: mceinline;">将游标定位第一个行 IP 地址第二段的“1”</span></p>
<p><code><span style="font-family: mceinline;">ctrl-v </span></code><span style="font-family: mceinline;">进入纵向编辑模式</span></p>
<p><code><span style="font-family: mceinline;">G </span></code><span style="font-family: mceinline;">移动游标到最后一行,可视块覆盖所要修改的列</span></p>
<p><code><span style="font-family: mceinline;">r </span></code><span style="font-family: mceinline;">进入修改模式</span></p>
<p><code><span style="font-family: mceinline;">5 </span></code><span style="font-family: mceinline;">输入数字“5”</span></p>
<p><code><span style="font-family: mceinline;">ESC </span></code><span style="font-family: mceinline;">退出纵向编辑模式,同时所有被选中的数字都被改成了“5”,并回到命令模式</span></p>
<p><span style="font-family: mceinline;">结果如下:</span></p>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%;"><tbody><tr><td class="code-outline"> <pre class="displaycode"><span style="font-family: mceinline;"> 10.5.5.214
10.5.5.212
10.5.5.210
</span></pre> </td></tr></tbody></table>
<span style="font-family: mceinline;"><br></span>
<p><a name="minor3.2"><span class="smalltitle"><strong><span style="font-family: mceinline;">第二步:前添加</span></strong></span></a></p>
<p><span style="font-family: mceinline;">在所有行之前添加“ping – c 4 ”:</span></p>
<p><span style="font-family: mceinline;">将游标定位到第一行第一列</span></p>
<p><code><span s
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP