前言

意识到vim命令是多么的强大,遂单独整理一份。

命令

可以分别使用 a、i、o 三个键从命令模式切换到输入模式。其中,a 键 与 i 键分别是在光标后面一位和光标当前位置切换到输入模式,而 o 键则是在光标的下面再创建一个空行,此时可敲击 a 键进入到编辑器的输入模式。编辑完成后使用Esc键可返回命令模式。

打开文件

$ vi ./file1

打开后定位到指定文本位置

$ vi ./file1 +/keywords

+表示追加后续操作命令
/keywords 表示自上而下搜索关键字keywords

进入文本编辑模式

i

进入命令行模式

esc键退出编辑模式,输入:进入命令行模式

保存退出

【:w】 保存文件
【:w!】 若文件为只读,强制保存文件
【:q】 离开vi
【:q!】 不保存强制离开vi
【:wq】 保存后离开
【:wq!】 强制保存后离开
【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
【:set nu】 显示行号
【:set nonu】 取消显示行号
【:w newfile】 另存为
【:set fileencoding】 查看当前文件编码格式
【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式
【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)
【:set fileformat=unix】 将当前文件的断行格式设置为unix格式

字符查询

【/word】 在文件中查找内容为word的字符串(向下查找)
【?word】 在文件中查找内容为word的字符串(向上查找)
【[n]】 表示重复查找动作,即查找下一个
【[N]】 反向查找下一个
【:n1,n2s/word1/word2/g】 n1、n2为数字,在第n1行到第n2行之间查找word1字符串,并将其替换成word2
【:1,s/word1/word2/g】从第一行(第n行同理)到最后一行查找word1注册,并将其替换成word2【:1,s/word1/word2/gc】 功能同上,只不过每次替换时都会让用户确认

删除字符

【x,X】 x为向后删除一个字符,相当于[Delete],X为向前删除一个字符,相当于[Backspace]
【dd】 删除光标所在的一整行
【ndd】 删除光标所在的向下n行

复制粘贴

【yy】 复制光标所在的那一行
【nyy】 复制光标所在的向下n行
【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴

更多常用命令请查看:https://www.mcheng.cn/301.html