一,常用命令
<1>一般模式:
光标移动:
- h,j,k,l四个键可以将光标进行上下左右移动,若想多次移动,加上相应数字即可,例如:向下移动30行,使用“30j”
- [ctrl]+[f]:屏幕向下移动一页,相当于[page down]
- [ctrl]+[b]:屏幕向上移动一页,相当于[page up]
- [n]+[space]:光标向右移动这一行的n个字符
- 0或[home]:光标移到这一行最前面字符处
- $或[end]:光标移到这一行最后面字符处
- G:光标移动到文件最后一行
- nG:光标移动到这个文件的第n行
- gg:光标移动到这个文件的第一行
- n[Enter]:光标向下移动n行,n为数字
查找与替换:
- /word:向下查找一个名称为word的字符串。例如要在文件内查找liubo,输入/liubo即可
- ?word:向上查找一个名称为word的字符串
- n:英文按键,表示重复前一个查找的操作。例如:输入/liubo后,按下n会向下继续查找下一个名称为liubo的字符串
- N:英文按键,表示“反向”进行前一个查找操作
删除复制与粘贴:
- x,X:在一行字中,x为向后删除一个字符,X为向前删除一个字符
- nx:连续向后删除n个字符
- dd:删除光标所在的那一整行
- ndd:删除光标所在的向下n行
- d1G:删除光标所在到第一行所有数据
- dG:删除光标所在到最后一行所有数据
- yy:复制光标所在哪一行
- nyy:复制光标所在的向下n行
- p,P:p为将已复制的数据在光标下一行粘贴,P则为粘贴在光标上一行
- u:复原前一个操作
- [ctrl]+r:重做上一个操作
<2>编辑模式:
- r,R:进入替换模式,r只会替换光标所在的哪一个字符一次,R会一直替换光标所在的文字,直到按下[ESC]
- a,A:a为从当前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
- o,O:o为在目前光标所在的下一行插入新的一行,O为在目前光标的上一行插入新的一行
<3>命令行模式:
- :w:将编辑的数据写入硬盘文件中
- :w!:若文件属性为“只读”时,强制写入该文件。不过到底能否写入,还与操作者对该文件的权限有关
- :q:离开vim(vi)
- :q!:若修改过文件并且不想存储,使用“!”为强制离开不保存文件
- wq:保存后离开,“wq!”为强制保存后离开
- :w[filename]:将编辑的数据保存成另一个文件
- :r[filename]:在编辑的数据中,读入另一个文件的数据,即将“filename”这个文件的内容加到光标所在行后面
- :n1,n2 w[filename]:将n1到n2的内容保存成filename这个文件
- :! command:暂时离开vim到命令行模式下执行command的显示结果。例如:“!ls/home”即可在vim中查看/home下面以ls输出的文件信息
- set nu:显示行号
- set nonu:取消行号
二、vim的保存文件,恢复与打开时的警告信息
在使用vim编辑文件filename时,vim会在被编辑的文件的目录下再新建一个名为filename.swp的暂存文件。对filename文件做的操作会被记录到filename.swp中。当系统因为某些原因断线(或者其他一切包括人为的原因)导致编辑的文件没有保存就退出了编辑,这个filename.swp文件就可以帮助恢复原有的未操作完的文件。当vim不正常终端时,暂存盘无法通过正常流程结束,暂存文件不会消失,若继续编辑filename文件,vim会判断这个文件有问题,提示你选择解决的方法。
例如当你在编辑文件man_db.conf时在当前目录会同时产生一个man_db.conf.swp的文件,当vim不正常结束后,你再次打开该文件就会出现以下界面