前言
本文章旨在总结自己工作学习中一些常用且能显著提高工作效率的Vim命令。每个命令基本都会跟着例子。
VIM命令
Vim的三种模式
(1) 命令模式
(1) :set nu : #添加行号 (临时设定)
(2) p : #粘贴
(3) u : #撤销
(4) dw : #删除一个单词
(5) dd : #删除一行
(6) 3dd : #删除三行
(2) 插入模式
i #在光标所在位置插入字符
I #在光标所在行的行首插入字符
o #光标所在行的下一行新行插入字符
O #光标所在行的上一行新行插入字符
s #删除光标所在字符并插入字符
S #删除光标所在行并插入字符
a #光标所在字符的下一个字符插入
A #光标所在行的行尾插入字符
(3) 退出模式
:q #当vim进入文件没有对文件内容做任何操作可以按"q"退出
:q! #当vim进入文件对文件内容有操作但不想保存退出
:wq #正常保存退出
:wq! #强行保存退出,只针对于root用户或文件所有人生效
跳转
(1) gg :跳转到文件开头
(2) Shift + g :跳转到文件结尾
分割窗口
(1) :vsplit :垂直分割
(2) :split :水平分割窗口
VIM中常用文本处理命令
查找
(1) /pattern : 从上往下查找关键词 pattern 并高亮显示
(2) ?pattern : 从下往上查找关键词 pattern 并高亮显示
n 向下匹配关键字
N 向上匹配关键子
(3) : 100 : 跳转到文件的第100行
(4) /pattern1 [ ]+ pattern2: 查找关键词 pattern1 之后为任意个空格之后是关键词 pattern2
(5) /^C.*\spattern : 查找行头第一个字符为C之后任意多个字符后是空格且空格后是pattern关键词的内容
添加
(1) :%s/^/pattern/ : 将每行行首添加 pattern 字符串
(2) :%s/$/pattern/ : 将每行行尾添加 pattern 字符串
(3) :3,521 s/^/pattern/ : 将从第3行到第521行的行首添加 pattern 字符串
替换
(1) :%s/.*pattern/pattern/g : 将每行中内容为 *pattern 的内容替换为 pattern
(1) :1,5s/.*pattern/pattern/g : 将1到5行中的内容为 *pattern 的内容替换为 pattern
注:g替换出现的所有关键字,如果不加"g"只替换出现的第一个
删除
(1) :g/pattern/d : 将有关键词 pattern 的行删除
(2) :g/^$/d : 删除不包含任何空格的空行
(3) :g/^\s*$/d : 删除包含空格的空行
(4) :%g!/pattern/d : 删除不包含关键词pattern的所有行
(5) :%s/\s+/ /g 删除行中间的空格
在 Vim 中,正则表达式中的 \s 表示匹配任意空白字符,包括空格、制表符和换行符。+$ 表示匹配一个或多个连续的字符。^ 表示匹配行的开头,$ 表示匹配行的结尾。
1):%s/\s+/ /g
2):%s/\s+//g
经 1) 2) 两步所有空格均去掉
字符匹配
(1) * : 匹配0到任意个任意字符
(1) ? : 匹配单个任意字符
总结
以上命令会持续补充,可以说“条条大路通罗马”,为完成一个任务可能不止一种方法,有好的方法可以完成相同的任务也欢迎大家提出宝贵的意见。