day14:vim编辑器的使用

Vim 基本介绍:

Vim是一个类似于Vi的著名的功能强大、高度可定制的开源文本编辑器,它在Vi的基础上进行了改进并增加了很多特性。

为满足不同用户的使用需要,此篇文章,从三个深度来介绍 vim

vim 使用 level 1

如果只是想要能用 vim ,可以用 vim 来编辑文件,那么看完本节内容就可以了。想要深入了解,看完本节,需要继续往下看。

安装 vim :

Debian 系列系统,如 Ubunut 系统使用: sudo apt get install vim

redhat系列系统,如 centos 系统使用: yum install vim

使用 vim 编辑文件:

vim text.text

测试用的 test.text 文件是提前准备好的,已经填入了很多数据,在命令执行后,我们会进入编辑器,此时,能看到文件中的内容。

但是我们现在还不能输入内容,原因是目前编辑器处于命令行模式(Command mode),只能执行 vim 编辑器的相关指令(后面会介绍),不能编辑。vim 编辑器有三中模式:

命令模式(Command mode)

输入模式(Insert mode)

底线命令模式(Last line mode)

要进行编辑,我们此时只需要按小写字母 “ i ” 按键即可进入编辑模式,进入后,可在光标处插入字符。细心的话,会看到终端左下角显示的字符,从文件名变成了 ” -- INSERT-- “ 。这就表示现在处于编辑模式。

 

 文本编辑完成后,只需要按 “ esc ” 键即可退出编辑模式,退出编辑模式之后按 “ :wq ” 即可保存文件并退出。

退出编辑模式后,如果要保存文件,或者是退出编辑器,往往涉及

:wq 表示保存退出

:wq! 表示强制保存退出(有一些文件打开的时候是只读的,不能正常保存,就需要加上 !进行强制保存 )

:x 表示保存退出

:q 表示只退出

:w 保存,但是不退出

:q ! 强制退出,不保存

:e ! 放弃当前修改,重新编辑

如果你只是需要了解用 vim 如何编辑文件,那么上面的介绍已经够了,可以满足日常简单修改文件的需要。

vim 使用 level 2

为了更高效的使用 vim ,我们可以在命令模式(Command mode),执行很多快捷键以及操作命令。

以下是根据个人经验总结出来的使用频率比较高的一些命令,熟练使用这些命令之后,你的工作效率将大大提升。

dd

删除光标所在行

dw

删除一个字(word)

d/D

删除到行末x删除当前字符X删除前一个字符yy复制一行yw复制一个字y/D删除到行末x删除当前字符X删除前一个字符yy复制一行yw复制一个字y/Y 复制到行末

p

将粘贴板的内容到当前行的下面

P

将粘贴板的内容到当前行的上面

ctrl-f

上翻一页

ctrl-b

下翻一页

$

跳至行尾

gg

跳至文首

G

调至文尾

u

撤销

?

字符串

/pattern

向后搜索字符串pattern (通常需要结合 n 和 N 来使用,n 是下一个匹配的字符串,N 是上一个匹配的字符串)

:%s/old/new/g

搜索整个文件,将所有的old替换为new

:%s/old/new/gc

搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

:整数

跳转到该行

:命令

执行该命令

这一部分就不举例了,表中列举的内容都需要实际操作之后才能掌握。

vim 使用 level 3

在命令模式(Command mode)下,使用 ggVG 的按键组合,可以起到全选的作用。

gg 表示跳到文本开头,V 表示进入行选择模式,G 表示选择到文章末尾。通过三个命令的组合,就选中了整篇文档。

几个可以和数字键组合使用的命令:

例如:

yy 复制当前光标所在行、p 粘贴当前粘贴板里面的内容、cc 拷贝剪切当前光标所在行、dd 删除当前光标所在行

数字yy 复制当前光标所在行下的 N 行

数字p 对当前粘贴板里面的内容在当前光标下粘贴 N 次

数字cc 拷贝剪切当前光标下的 N 行

数字dd 删除当前光标所在行下的 N 行

另外还有一些命令也可结合数字使用,需要自行探索。

列选择模式:

按几下 ESC 确认当前处在命令(Command mode)模式下,然后按 gg 跳到第一行,按下 Ctrl + v进入列选择模式,然后按 G,跳到文章最后一行,此时你应该看到,文本的第一列被选中了,而且只选中了第一列。按下 U 键,可以看到,每行的第一个字母都变为大写了。提示:选中文本后按 u 可以将文本变为小写,选中文本后按 ~ 可以翻转原有的大小写。

 

 我们可以通过列选择的方式,在每行的前面上进行相同的批量修改,首先按下 gg 跳到第一行,再按 Ctrl + v 进入列选择模式,再按 G,选中全文的第一列,然后按 I (大写),进入列插入状态,输入" BaoGaoAFei " ,再按下 ESC,你会看到,所有行之前都添加了新内容 " BaoGaoAFei " ,列选择这一操作,可方便对文件内容进行批量修改。

 

宏的录制:

接下来,我们要将文本的偶数行的 "BaoGaoAFei" 修改为 "NULL"。由于所有的偶数行都要进行同样的操作,因此我们把这个操作录制下来,然后重复播放若干遍,就能很快地完成这项工作了。

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

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

接下来我们播放这个宏,完成整个操作步骤。在键盘上输入 100@m,表示将 m 寄存器里的宏播放 1000 次,马上可以看到,文章中所有偶数行的 "BaoGaoAFei" 修改为了 "NULL"。

 我们虽然执行了100次宏,但是在执行到第七次的时候,文件后面已经没有内容了,所以宏的执行就停止了。

使用caw 修改整个单词,而不使用 s 命令删除单个字母,这些细节可以保证我们录制的宏更具有一般性,因为我们工作中遇到的文件,不会是很规范的每一行都是 "BaoGaoAFei" 这样的字符串,caw 可以保证需要修改的字符为其他字符串时依然正确执行。(如果都是 "BaoGaoAFei" 这样的字符串,那么我们直接使用 :%s/old/new/g 替换就可以了,不用麻烦录制宏)

Vim 编辑器的功能非常强大,level 3 这一部分只是介绍几个案例,但 vim 能做的远不止这些,要详细的介绍,恐怕要专门写一本书,希望我们之后,能够慢慢掌握更多它的使用技巧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值