Linux之vim使用
1. 文本编辑器种类
行编辑器 sed
全屏编辑器 nano vi vim
2. vim使用
1. 模式化的编辑器
常用模式
编辑模式
输入模式
末行模式
2. 打开文件
语法: vim file
例子:
[root@mysql-37 ~]# vim +5 /etc/fstab 打开文件后,光标处于第5行的行首 [root@mysql-37 ~]# vim +/a /etc/fstab 打开文件后,光标处于第一个匹配字符所在行的行首
3. 模式转换
默认是编辑模式
1. 编辑模式----->输入模式
i: 光标所在处插入
I: 光标所在行的行首插入
a: 光标所在处后方输入
A: 光标所在行的行尾输入
o: 光标所在行的下方输入,默认在行首
O: 光标所在行的上方输入,默认在行首
2. 输入模式----->编辑模式
ESC
3. 编辑模式----->末行模式
冒号
4. 末行模式----->编辑模式
ESC
4. 关闭文件
ZZ 编辑模式下,保存退出
:q 末行模式下,没有修改退出
:q! 末行模式下,强制退出
:wq 末行模式下,保存并退出
:x 末行模式下,保存并退出
:w /path/file 末行模式下,另存为其它文件
5. 光标跳转
1. 字符间跳转
h 向左一个字符
j 向下一行
k 向上一行
l 向右一个字符
可以在这几个命令前面加数字,对应就是向某个方向多少位。
10h 向左10个字符
2. 单词间跳转
w 下一个单词的词首
b 当前单词的词首或前一个单词的词首
e 当前或后一个单词的词尾
10w 后面第10个单词的词首
3. 行首行尾跳转
^ 跳转至行首的第一个非空字符
0 跳转至行首 绝对行首
$ 跳转至行尾 绝对行尾
4. 行间跳转
G 跳转到最后一行的行首
gg 跳转到第一行的行首
2G 跳转到第二行的行首
5. 句间跳转
( 向上跳转一句
) 向下跳转一句
2( 向上跳转两句
6. 段间跳转
{ 向上跳转一段
} 向下跳转一段
2{ 向上跳转两段
6. 翻屏操作
ctrl+f 向文件尾部翻一屏
ctrl+b 向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏
7. 编辑模式
1. 字符编辑
x 删除光标所在处的字符
2x 删除两个字符(包含光标所在处的字符)
xp 交换光标所在处的字符与其后方的字符
2. 替换命令
r 替换光标所在处的字符
3. 删除命令
d 删除命令
d$ 删除光标所在处的内容到行尾(包含光标所在处的字符)
d^ 删除光标所在处的内容到行首(不包含光标所在处的字符)
dw 删除光标所在处的单词(如果光标所在处在单词首部,删除整个单词;如果在单词中间,删除光标所在处的字符到单词尾部) 也会删除单词后面的空格字符
de 删除光标所在处的单词(如果光标所在处在单词首部,删除整个单词;如果在单词中间,删除光标所在处的字符到单词尾部) 不会删除单词后面的空格字符
db 删除光标所在处的前一个单词(如果光标所在处在单词首部,删除前一个单词,包括空格;如果光标所在处在单词中间,删除光标所在处到该单词的首部)
3dw 删除光标所在处后的三个单词
dd 删除光标所在处的整行
3dd 删除光标所在处开始的三行
4. 粘贴命令
p 如果复制的内容为一整行,则粘贴在当前光标所在处的下方;如果不是一整行,则粘贴在当前光标所在处的后方
P 如果复制的内容为一整行,则粘贴在当前光标所在处的上方;如果不是一整行,则粘贴在当前光标所在处的前方
5. 复制命令
y
y$ 复制光标所在处到行尾的内容,包含光标所在处
y^ 复制光标所在处到行首的内容,不包含光标所在处
y0 复制光标所在处到行首的内容,不包含光标所在处
ye 复制光标所在处到单词的词尾,包含光标所在处,不包含空格
yw 复制光标所在处到单词的词尾,包含光标所在处,包含空格
yb 复制光标所在处到单词的词首,或者前一个单词
yy 复制光标所在处的一整行
3yy 复制光标所在处开始的3行
6. 改变命令
c
c$
c^
c0
cb
ce
cw
3cc
8. 可视化模式
v
V
9. 撤销操作
u 撤销操作
4u 撤销4步操作
10. 撤销此前的撤销
ctrl+r
11. 末行模式
1. 地址定界
:start_postion,[end_positon]
3,5 第3行到第5行 无论光标在什么地方
3,+2 从第3行开始,往下数两行
. 当前行
$ 最后一行
% 全文
2. 查找
/pattern
/a 从当前行开始向文件尾部查找匹配a的所有字符串
?a 从当前行开始向文件头部查找匹配a的所有字符串
n 下一个
N 上一个
3. 查找并替换
s/要查找的内容/替换为的内容/修饰符
修饰符
I: 忽略大小写
g: 全局替换,意味一行中匹配多次,均替换
例子:
全文所有替换
:%s/要查找的内容/替换为的内容/g 不带g只替换行的第一个匹配的
某一行替换
:1s/要查找的内容/替换为的内容/g 不带g只替换行的第一个匹配的
3. 实用例子
1. 注释多行
ctrl+v---> 选择多行,按上下左右键 ----> shift+i ----> 输入# -----> esc
2. 解除注释多行
ctrl+v---> 选择多行,按上下左右键----->d
3. 从windows复制粘贴到linux的vi或vim中
ctrl+c---->shift+insert

浙公网安备 33010602011771号