一、vim 编辑器三大模式
命令模式--->编辑模式 aio
编辑模式<---命令模式 esc
命令模式--->
二、命令模式进入编辑模式 输入字母 a i o A I O
i 当前字符之前插入(光标前)
I 行首插入(行首)
a 当前字符之后插入(光标后)
A 行尾插入(行尾)
o 下一行插入
O 上一行插入
x 向后删除一个字符 等同于 delete
X 向前删除一个字符
. 命令 会重复上一次操作
u 命令 撤销上次的修改,恢复到原始状态
dd 命令 删除当前行
行操作
home键 或者^ 行首
$ end 键 行尾
删除命令 dd
dd 删除一行 数字+dd 删除多行
删除5行 5dd
删除光标后全部内容 d+G
复制粘贴
yy 复制一行 数字+yy复制N行
p 将复制行粘贴
V模式(批量对每行进行操作)
进入v模式移动光标选择区域
编程的时候需要进行多行注释
1. ctrl+v 进入列编辑模式
2. 向下或向上移动光标
3. 吧需要注释的行的开头标记起来
4. 然后按大写的I
5.在插入注释符 比如 #
6. 在按ESC 就会全部注释了
删除: 再按ctrl+v 进入列编辑模式
向下或向上移动光标
选中注释部分 然后按d 就会删除注释符号
命令行模式
:w 保存
:q 没有进行任何修改 退出quit
:q! 修改了 不保存 强制退出
:wq 保存并退出
:wq! 强制保存并退出
:!ifconfig 调用系统命令
!+命令
替换
格式: %所有内容s替换 旧的内容 新的内容
默认是每一行的第一个符合要求的词 (/g 全部)
:% s/a/b 每一行的第一个a被替换成b
:% s/a/b/g 将文本中所有的1替换成5
:2,3 s/a/b
/g 全部
定位
gg 定位到行首
G 定位到最后一行 行首
#G 定位到某一行
:# 定位到某一行
#gg 定位到某一行
#代表行号
dd 命令也可以删除操作,但是会把整行一起删除,如果dd后使用 "." 命令 那么重复上次dd命令 删除当前行
>G 命令会增加从当前行到文档末尾处的缩进层级 如果在此命令后使用 "." 命令 那么重复上次修改 会
让Vim 增加从当前行到文档末尾的缩进层级。
不要自我重复
举例:以下片段在每行末尾加分号
var foo = 1
var bar = 'a'
var foobar = foo + bar
输入A 直接到达本行末尾 输入; 按esc键
A;<ESC>
到达第二行
j
执行上次操作
.
重复上次操作
j.
技巧4 执行、重复、回退
查找并手动替换
1、查找单词
/content
或者
将光标移动到单词上 按*
试想,如果有100个字符需要修改,如何快速呢?
1、光标移动到单词上之后,使用cw命令会删除从光标位置到单词结束之间的字符,并进入插入模式
2、输入要替换的单词
3、输入"." 命令 把 上面操作的命令"cwcopy<ESC>"作为一个修改
4、当再次输入n命令光标进入下一个匹配的字符
5、按"."命令就会将当前光标的字符修改为copy
:set nu 设置行号
:set nonu 取消设置行号
:noh 取消高亮显示命令,默认高亮
vim 打开多个文件:
1、上下形式打开并显示2个文件
[root@c7 ~]# vim -o /etc/passwd /etc/hosts
2、以左右形式打开并显示2个文件
[root@c7 ~]# vim -O /etc/passwd /etc/hosts
2 files to edit
使用ctrl+ww组合键,在2个文件之间进行切换编辑