1.vim编辑器基本介绍
1.1 vim编辑器模式
首次进入文件 ---- 命令模式
出现 “Insert” ---- 编辑模式
输入: ---- 命令行模式
1.2 命令行模式操作
:w 保存 save
:w! 强制保存
:q 没有进行任何修改,退出 quit
:q! 修改了,不保存,强制退出
:wq 保存并退出
:wq! 强制保存并退出
:x 保存退出
2.i:当前字符前插入(光标前)
3.I:行首插入
4.a: 当前字符之后插入(光标后)
5.A:行尾插入
6.r:替换
7.o(小写)下行插入
8.O(大写)上行插入
9.x(小写) :删除当前光标所在的字符
10.X(大写):删除光标前一个字符
11.u(小写):撤销[等于windows里面的ctrl+z]
删除第四行
撤销删除操作
12.ctrl+r:还原撤销的操作(等于win里面的ctrl+y)
13.使用字母移动光标
h(左) j(下) k(上) l(右)
14.光标跳转行首
0(数字零)和home
15.光标跳转行尾
$和end
16.光标到首行行首
gg
17.光标到尾行行首
G
18.定位到指定行
ngg:定位到第n行
如:5gg 光标快速到达第5行行首
19.查找字符或字符串
/string(字符串)[自动高亮]
n从当前光标处向下查询,N从当前光标处向上查询
?string(字符串)[和/操作相反]
n从当前光标处向上查询,N从当前光标处向下查询
取消高亮命令模式:noh
20.复制操作
y:对当前光标高亮字符进行复制操作
yy:对当前行进行复制操作
nyy:从当前行起复制n行
例:4yy,复制从当前行的四行,也就是4到7行
21.粘贴
p(小写):在当前字符之后粘贴(光标后)
P(大写):在当前字符之前粘贴(光标前)
22.删除操作
x(小写):删除当前字符
dd:删除当前行
D:从光标处删除到行尾
ndd:从当前行开始删除n行
例:4dd,删除从当前行的四行,也就是4到7行
23.剪切
linux中没有专门的剪切的操作,剪切就是删除
x:剪切当前字符
dd:剪切当前行
24.可视模式
ctrl+v 竖行
shift+v 横行
25.进行多行插入
先ctrl+v进入可视模式,选中需要多行插入的内容,按下I(大写i),进行插入,输入要插入的内容,按2次esc插入完成
26.多行删除
26.1. 删除选中字符
先ctrl+v进入可视模式,选中需要删除的字符,按下d进行删除
26.2. 删除从当前字符到行尾(和上面删除操作一样,将d改为大写D)
27.vim调用外部命令
在命令行模式中输入命令
:!+命令
例:
28.vim调用外部文件(将外部文件追加到当前文件[相当于直接复制到])
命令行模式
:r+目录
例:
29.文本替换
格式:格式 : 范围(其中%所有内容) s分隔符 旧的内容 分隔符 新的内容 (分隔符可以自定义)默认是每一行的第一个符合要求的词 (/g全部)(/i不区分大小写)
例:
29.1.将1到三行的第一个bin替换为测试
1,3 s/bin/测试
2.将1到三行的所有bin替换为测试
1,3 s/bin/测试/g
29.3.将所有bin替换为测试
% s/bin/测试/g
29.4.将所有Bin替换为测试
% s/bin/测试/gi //i表示不区分大小写
30.vim打开多个文件
30.0 全部操作,后面加a
例:退出 qa
互相切换:ctrl+ww
30.1. 一个一个编辑
vim 文件1 文件2 .... 文件n
vim a /etc/passwd //a-文件1 /etc/passwd-文件2
30.2 同时显示
1.上下显示
vim -o 文件1 文件2...文件n //上下显示,小写o
vim a /etc/passwd //a-文件1 /etc/passwd-文件2
vim -o a /etc/passwd /etc/hosts
2.左右显示(操作同上)
vim -O 文件1 文件2...文件n //上下显示,大写O
vim -O a /etc/passwd /etc/hosts
31.比较文件
[root@ksxh ~]# touch a b // 创建2个文件 a和b [root@ksxh ~]# vim -O a b //编辑a和b
31.1 diff 文件1 文件2
[root@ksxh ~]# diff a b
1c1
< this is a
---
> this is b
5c5
< no
---
> no
8c8,9
< buyiyang
---
> different >
>
31.2 vimdiff 文件1 文件2(在vim中逐行比较,会高亮不同区域)
[root@ksxh ~]# vimdiff a b 还有 2 个文件等待编辑
32.自定义vim环境
32.1临时定义
set nu //显示行号
set nonu //不显示行号
noh //取消高亮
32.2永久改变
vim /etc/vimrc //所有用户
vim ~/.vimrc //当前用户