gvim 快速编辑例子

1 准备工做vim

首先, 咱们打开 VIM, 输入一段文本,  用于今天的演示: this

this is a test

2 查找替换

按几下 ESC 进入 Normal 模式, 输入如下命令: :%s/ /\r/g 。 回车后获得的效果以下: spa

this
is
a
test

解说: 这条命令的做用是,  将文章中全部的空格替换为回车 。 code

3 行的拼接

    按几下 ESC 进入 Normal 模式, 而后输入这段命令: ggVG gg   表示跳到文本开头 , V  表示进入行选择模式 , G   表示选择到文章末尾 。 经过这 3 条命令, 总共 4  个按键, 咱们选中了整篇文章 。 orm

而后, 按下冒号 :  进入命令模式 ,  状态栏上出现: :'<,'> 字样,  在它后面输入 j , 而后回车, 能够看到, 整篇文章又被拼接起来了 , 整个操做包括回车只按了 7  次键:  io

this is a test

4 复制粘贴与重复动做

按几下 ESC 确认当前处在 Normal 模式下, 而后按 yy , 便可将当前行复制到默认寄存器中  (至关于剪贴板) 。 而后按下 12p , VIM  将执行粘贴动做 12 次, 屏幕上出现了 13  行这样的字符: class

this is a test
this is a test
this is a test
this is a test
this is a test
t his is a test
this is a test
this is a test
this is a test
this is a test
this is a test
this is a test
this is a test  

解说: 在 VIM 中, 复制和粘贴操做至关快捷。 另外,  VIM  中大部分命令均可以经过在命令前加数字重复若干遍 。 test

5 列操做

     把每一行的开头第一个字母改成大写。  vimrc

按几下 ESC 确认当前处在 Normal 模式下, 而后按  gg  跳到第一行, 按下 Ctrl + v  进入列选择模式  (若是你按下 Ctrl + v 没能进入列选择模式: 编写本身的 _vimrc(在安装跟目录)! 若是你不会写, 请放一个空文件在那儿),  而后按 G , 跳到文章最后一行, 此时你应该看到, 文本的第一列被选中了, 并且只选中了第一列。 按下 U  键,  能够看到, 每行的第一个字母都变为大写 了。 提示:  选中文本后按 u   能够将文本变为小写 ,  选中文本后按 ~   能够翻转原有的大小写 。  im

This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test
This is a test

而后, 咱们在每行的前面 加上一个星号 。 按下  gg  跳到第一行, 按 Ctrl + v 进入列选择模式,  再按 G , 选中全文的第一列, 而后按 I , 进入列插入状态 , 输入星号  *再按下 ESC , 你会看到,  全部行以前都出现了一个星号:  

*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test
*This is a test  

解说:  另外,  列选择后按 x 删除 被选中的块, 能够批量地解除注释。

6 宏的录制

  接下来, 咱们要将文本的偶数行修改成:  This is another test 。  因为全部的偶数行都要进行一样的操做,  所以咱们把这个操做录制下来,  而后重复播放若干遍, 就能很快地完成这项工做了。

      首先, 按几下 ESC 确认处在 Normal 模式下, 再按下  gg  跳到第一行, 准备开始操做。  咱们首先按下 q  键,  而后再按一个其它字母 ,  将这个宏录制 到该字母对应的寄存器 下。  例如咱们这里使用 m  寄存器, 则按  qm 。 此时 VIM 状态栏出现“recording” 字样,  代表已经进入了录制状态 。

      而后, 咱们把第二行的 a  修改成  another 。 首先按 j  进入第二行 ,  而后按 $  跳到行末 , 再按两下 b   往前跳两个单词 , 此时光标停在字母 a  上。  而后咱们输入caw 删除 a  并进入插入状态, 而后输入 another  , 按  ESC 回到 Normal 状态, 按 j  进入下一行,  整个操做步骤就完成了。 最后, 咱们再按一下 q , 结束该宏的录制。

      接下来咱们播放这个宏, 完成整个操做步骤。  在键盘上输入 1000@m , 表示将 m  寄存器里的宏播放 1000 次, 立刻能够看到,  文章中全部偶数行的 a  都变成了  another

*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test
*This is another test
*This is a test  

解说: 虽然咱们指定播放 1000 次 , 但事实上,  执行到第 6 次的时候, 光标挪到了屏幕最下方,  因而执行过程就自动中止了。 所以,  在批量操做的时候, 咱们能够指定足够大的数字,  而不用担忧出现问题。  

另外, 修改 a  的时候,  咱们跳到行末后再使用 b  命令以单词为单位跳转, 而没使用 h  一个字母一个字母往回挪, 咱们使用 caw  修改整个单词 , 而不使用 s  命令删除单个字母并进入 Insert 模式 。  这些细节能够保证录制获得的宏更具备通常性。

7 点命令

      接下来, 咱们在每行的末尾加上一个感叹号  !

因为每行长度不一样,  咱们没法使用块选择方式 批量尾部添加感叹号。  使用宏录制的方式是能够作到这点的,  但操做稍嫌繁琐了一些。 使用点命令,  能够很是方便地作到这一点。

先按几下 ESC 确认当前出于 Normal 模式, 而后使用  gg  跳到第一行, 按 A   进行行尾插入 , 输入 ! , 而后按下 ESC 回到  Normal 状态, 第一行的感叹号就添加完毕了。

而后, 咱们按 j  进入第二行 , 再按 . , 能够看到,  第二行尾部也出现了感叹号。 反复按 j.j.j. ,  直到每一行尾部都添加了感叹行为止。

*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!
*This is another test!
*This is a test!  

解说: 点命令 的做用是, 重复最近一次所作的编辑操做 。  因为在第一行里作的操做是行尾添加,  所以在第二行重复这个动做的时候,  也会在行尾添加一样的字符。  点命令功能不如宏强大, 但它使用起来比宏简便,  所以也有着普遍的用途。

相关文章
相关标签/搜索