学会使用vi编辑器是学习Linux系统的必备技术之一,因为一般的Linux服务器是没有GUI界面的,Linux运维及开发人员基本上都是通过命令行的方式进行文本编辑或程序编写的。vi编辑器是Linux内置的文本编辑器,几乎所有的类unix系统中都内置了vi编辑器,而其它编辑器则不一定,另外很多软件会调用vi编辑进行内容编写,例如crontab定时任务。较之于其它编辑器或GUI编辑器,vi编辑速度是最快的。VIM是它的增强版本,VI有三种基本工作模式,分别是:
命令模式(command mode)、或者叫一般模式
插入模式(insert mode)、或者叫编辑模式
底行模式(last line mode)、或者叫命令行模式
1、最基本用法
vi huangbo.txt
1、首先会进入“一般模式”,此模式只接受各种命令快捷键,不能编辑文件内容 2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容 3、编辑完成之后,按Esc键退出编辑模式,回到一般模式 4、再按:,进入“底行命令模式”,输入wq命令,回车即可保存退出 |
2、移动光标
10、):移动到句子结束 11、0:移动光标到下一句句首 12、$:移动光标到本行行尾 13、{:移动到段落开始 14、}:移动到段落结束 15、H:屏幕顶端 16、L:屏幕底端 17、M:移动到屏幕中央位置 18、gg:直接跳到文件的首行行首 19、G:直接跳到文件的末行行首 20、最强光标移动: % : 匹配括号移动,包括(, {, [.(你需要把光标先移到括号上) *: 匹配光标当前所在的单词,移动光标到下一个匹配单词 #: 匹配光标当前所在的单词,移动光标到上一个匹配单词 |
3、常用操作
一些有用的操作(在一般模式下使用):
a 在光标后一位开始插入 A 在该行的最后插入 i 在光标前 I 在该行的最前面插入 o 在光标当前行下插入一个空行,光标位于空行行首 O 在当前行插入空行 dd 删除光标所在行 3dd 删除从当前行开始的3行 yy 复制光标所在行 3yy 复制从当前行开始的3行 p paste 粘贴 u undo 撤销 |
4、查找并替换
(在底行命令模式中输入) 1显示行号 :set nu 2 隐藏行号 :set nonu 3 查找关键字 :/you ## 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个) 查询的时候被匹配上的字符串会被高亮,可以在命令模式下使用:noh取消高亮 4、直接跳转到N行 :N |
5、替换操作
:1 s/sad/bbb 将第一行的第一个sad替换为bbb :1,5 s/sad/bbb 将第一行到第五行的第一个sad替换为bbb :1,. s/sad/bbb 将第一行到光标行的第一个sad替换为bbb :.,$ s/sad/bbb 将光标行到缓冲区最后一行的sad替换为bbb :s/sad/bbb 查找光标所在行的第一个sad,替换为bbb :s/sad/bbb/g 查找光标所在行的所有sad,替换为bbb :%s/sad/bbb 查找文件中所有行第一次出现的sad,替换为bbb :%s/sad/bbb/g 查找文件中所有的sad,替换为bbb |
6、其他小技巧
r 替换光标处一个字符 R 进入替换模式,从光标处连续替换 s 删除当前字符,进入插入模式 S 删除当前行,进入插入模式 f + s 光标行内向后查找第一个出现的字符s F + s 光标行内向前查找第一个出现的字符s ~ 大小写转换,只转换光标处字符 |
7、真正的宝藏
VIM详解:http://linux.ctolib.com/cheat-sheets/view/Vim-command.html