Linux文档编辑vim
一. vim简介
vi编辑器,全称是visual interface,可以执行输出、删除、查找、替换等众多的文本操作。Vim(vi iMprove)是vi的升级版,最常见的区别是能用多种颜色显示显示系统文件的一些特殊信息。
Vim安装:yum -y install vim
1. vim工作模式
Vim存在多种工作模式,常用工作模式有:命令模式(编辑模式)、输入模式(插入模式)、末行模式。命令模式就是实现光标移动以及大量的快捷键操作,输入模式就是实现文本的基本编辑功能,末行模式就是通过输入特定指令实现特定功能,如保存、退出等。
使用方式:vim file例如:
vim 1.sh #打开1.sh文件进行编辑
vim + 1.sh #打开1.sh文件,光标在最后一行
1.1 vim常用快捷键
1.1.1.插入按键
实现由命令模式进入输入模式,并进行文本编辑。
按键 |
功能 |
a |
由命令模式进入插入模式,在当前光标位置后插入内容 |
A |
由命令模式进入插入模式,在当前光标所在行行尾插入内容 |
i |
由命令模式进入插入模式,在当前光标位置前插入内容 |
I |
由命令模式进入插入模式,在当前光标所在行行首插入内容 |
o |
由命令模式进入插入模式,在光标所在行下边添加一行插入内容 |
O |
由命令模式进入插入模式,在光标所在行上边添加一行插入内容 |
1.1.2.光标移动
Vim中,最简单的移动光标方式是使用方向键(上、下、左、右)进行操作,但该方法效率较低。更高效方式是使用快捷键,所有快捷键均在命令模式下直接使用。
按键 |
功能 |
h |
光标左移一位 |
j |
光标下移一行 |
k |
光标上移一行 |
l |
光标右移一位 |
gg |
光标移至文件第一行行首字符 |
G |
光标移至文件末行行首字符 |
nG |
光标移至第n行行首字符(n为数字) |
^ |
光标移至当前所行首字符 |
$ |
光标移至当前所行尾字符 |
fx |
光标移至当前行下一个x字符处(x代表需要查找的字符,如s、e等) |
Fx |
光标移至当前行上一个x字符处(x代表需要查找的字符,如s、e等) |
w |
光标向右移动,移动到下一个单词的词首 |
W |
光标向右移动,移动到下个字串的开始(字符串的开始) |
e |
光标向右移动,移动到下一个单词的词尾 |
E |
光标向右移动,移动到下个字串的结尾(字符串的开始) |
b |
光标向左移动,移动到上一个单词的词首 |
B |
光标向右移动,移动到上个字串的词尾(字符串的开始) |
以上w、W、e、E、b、B,前加n(n为数字),代表移动n个字符。
1.1.3删除、复制、粘贴
(1)删除
按键 |
功能 |
x |
删除当前光标下字符 |
X |
删除当前光标前一个字符 |
D |
删除光标所在字符到行尾内容 |
dd |
删除当前光标所在行 |
ndd |
删除n行(n为数字) |
dG |
删除光标所在行之后所有行(包括光标所在行) |
jdG |
删除光标所在行之后所有行(不包括光标所在行) |
d$ |
删除光标到行尾的内容 |
J |
删除换行符,可以将两行合并为一行 |
:1,5d |
删除1-5行 |
:5,$d |
删除第5行及其后所有行 |
(2)撤销
按键 |
功能 |
u |
撤销上一步操作 |
U |
撤销对整行操作 |
Ctrl+r |
撤销的撤销 |
(3)复制、粘贴
按键 |
功能 |
rx |
将光标当前字符替换为x(x为任意字符) |
yy |
复制当前行 |
nyy |
复制当前行开始的n行(包含当前行,n为数字) |
p |
粘贴复制内容到当前行之后 |
P |
粘贴复制内容到当前行之前 |
:1,5 co 10 |
将1-5行插入到第10行之后 |
:1,$ co $ |
将整个文件复制并插入到文件尾部 |
(4)剪切
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用方向键(上、下、左、右)或者h、j、k、l按键移动光标即可选择某些行或字符,再按d即可剪切。
按键 |
功能 |
ndd |
剪切当前行开始的n行(包含当前行,n为数字) |
:1,5d |
剪切1-5行 |
:1,5 m 20 |
剪切1-5行,并插入到第20行之后 |
(5)查找、替换
按键 |
功能 |
/host |
当前光标处向下查找host,n查找下一个,N查找上一个 |
?host |
当前光标处向上查找host,n查找下一个,N查找上一个 |
:set ignorecase |
忽略大小写查找(:set noignorecase不忽略大小写) |
:set hlsearch |
高亮显示所有搜索结果(:set nohlsearch关闭高亮显示) |
:s/root/admin |
将光标所在行出现的第一个root替换为admin |
:s/root/admin/g |
将光标所在行出现的所有root都替换为admin |
:2,4 s/root/admin/g |
将2到4行所有root替换为admin |
:%s/root/admin |
将所有行出现的第一个root替换为admin |
:%s/root/admin/g |
将所有root都替换为admin |
(6)保存并退出
按键 |
功能 |
:q! |
强制退出,不保存任何修改 |
:wq/:x/ZZ |
保存并退出 |
:w |
保存 |
:w 2.sh |
另存为2.sh |
2其他操作按键
(1)显示行号(:set nu);
(2)执行命令(:!command);
(3)注释命令:
按键 |
功能 |
2,4 s/^/#/g |
注释第2-4行 |
2,4 s/^#//g |
取消2-4行注释 |
:%/^/#/g |
注释整个文档 |
个人公众号: