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 | 注释整个文档 |
个人公众号:
精彩评论