前言
vim号称编辑器之神,很多人都经历了从入门到放弃的痛苦过程。如今使用vim已有10年,vim极高的提高了我的工作效率,而且在使用的过程中总能不经意间发现一些使用技巧,仿佛突然掉到山洞里,捡到了一本绝世武功秘籍一样。
一般我们使用的centos或者其他的Linux操作系统都已经默认装了vim。可以直接查看是否已经安装。
[root@zmkjedu71 ~]# rpm -qa | grep vim
vim-enhanced-7.2.411-1.8.el6.x86_64
vim-common-7.2.411-1.8.el6.x86_64
vim-minimal-7.2.411-1.8.el6.x86_64
vim 编辑器有三种工作模式: 命令模式,输入模式,末行模式
记住几个点:
首次进入文件 是命令模式
出现 “insert" 是编辑模式
输入:(左下角) 是 命令行模式
我们先来看输入模式:
输入模式
进入编辑模式的方法: a i o A I O(任意一个字母都可以切换到编辑模式)
这里做一下说明:(见表格)
1) 插入方式
键 |结果
i | 当前字符之前插入 (光标前)
I|行首插入
a|当前之后插入(光标后)
A|行尾插入(行尾)
o|下一行插入 (另起一行)
O|上一行插入(上一行插入)
注意: 按下这些字母不是为了输入某个字符,而是为了切换到插入模式。按ESC可以返回到命令模式,为了确保能够真的返回,有时候需要按两次esc
命令行模式
在命令行模式下能够进行的操作:
1. 光标定位类:
h: 左
j: 下
k: 上
l: 右
数字0 和home键表示切换到行首
$和end键表示切换到行尾
gg 表示快速定位到文档的首行,
G: 定位到末行
3gg或者3G表示快速定位到第3行
2. 正则匹配类:
/string(字符串) 找到你要找的单词或者内容, 如果同样的内容很多,可以使用N/n来向上或者向下查找。
/^d 查找以什么开头的内容, 此处是查找以d开头的内容
/t$ 查找以t结尾的内容
技巧: 如果想打开文件后光标直接到文件的最后一行,可以使用+
比如我们要打开/etc/passwd ,打开后让光标在最后一行
1| vim + /etc/passwd
3. 文本编辑类:
复制,粘贴,删除,撤销
按键|作用
y|复制
yy|复制整行
y$|从光标所在位置复制到行尾
y^|从光标所在位置复制到行首
dd|删除/剪切
3dd|删除3行
d0|删除到行首
d$|删除到行尾
p|粘贴
x|删除光标所在位置的字符
D|从光标处删除到行尾
u|撤销删除
ctrl+r |还原撤销过的操作
r|替换
4. 可视化类操作
V: 进入可视化模式
R: 擦除,改写,进入替换模式
举个例子:
给多行加#
CTRL+V –选中要加#的行 — 输入大写的I —在第一行加#–按两下esc
末行模式操作:
1. 保存退出命令
键盘输入 | 作用 |
---|---|
:w | 保存 |
:w! | 强制保存 |
:q | 不做任何修改直接退出 |
:q! | 不做任何修改强制退出 |
:wq | 保存并退出 |
:wq! | 强制保存退出 |
😡 | 保存退出 |
ZZ | 保存退出 |
2. 调用外部命令
:! +命令
比如要查看当前的ip
:r 读取文件并追加到文档中
3. 文本替换(难点也是重点)
格式 : 范围(其中%所有内容) s分隔符 旧的内容 分隔符 新的内容 (分隔符可以自定义)
举个例子:
:1,3 s/bin/zmkjedu71 替换第1到3行中出现的第一个bin进行替换为zmkjedu71
:1,3 s/bin/zmkjedu71/g 替换第1到3行中查找到所有的bin进行替换为zmkjedu71
:3 s/bin/aaaaa #只把第3行中内容替换了
:% s/do/zmkjedu71/g 将文本中所有的do替换成zmkjedu71
:% s/do/zmkjedu71/gi 将文本中所有的do替换成zmkjedu71, 并且忽略do的大小写
:% s@a@b@g 将文本中所有的a替换成b
4. 自定义 vim使用环境
|命令|作用
set nu |设置行号
set ic |不区分大小写
set list | 显示控制 字符
set nonu | 取消设置行业
set ai | 自动缩进
noh |取消高亮显示
set all | 查看所有可以配置的参数