⚡Linux中Vim常用命令

⚡Linux中Vim常用命令

小猫涂卡 129 2022-11-09

学会Vim对日常运维帮助不少,虽然是课上的笔记,但还是给一些平时最常用的给大家看看:

文件导航

在命令模式下,可执行以下命令使光标快速到达目标出

命令 说明
gg 文件第一行
G 跳转到当前文件最后一行
n% 跳转到当前文件的n行
^ 跳到光标当前行的开始
$ 跳到光标当前行的结尾
% 跳转当前光标处括号(“[”, “{”, “(”)相配对的括号
{ 跳转到当前段落的开头
} 跳转到当前段落的结尾
( 跳转到当前句子的开头
CTRL+O 跳转到历史光标位置列表的前一个位置处
CTRL+I 跳转到历史光标位置列表的后一个位置处
mx 设置书签,x 只能是 a-z 的 26 个字母
`x 跳转到书签处
zR 展开代码折叠

文件编辑

在命令模式下对文件进行编辑

命令 说明
x 删除光标位置的字符
dw 删除光标位置的单词
dd 删除当前行
dd 删除 n 行
dgg 删除文件第一行到当前行的所有文本
dG 删除当前行到文件最后一行的所有文本
>> 当前代码行增加缩进
<< 当前代码行减小缩进
n>> 对 n 行增加缩进
n<< 对 n 行减小缩进
= 格式化当前行代码
yy 将当前行复制到剪贴板
yy 复制 n 行到剪贴板
p 粘贴到下一行
P(大写) 粘贴到上一行
J 将下一行文本合并到当前行
o 在光标下一行增加一空行,光标跳转至空行开头,并进入插入模式
O 在光标上一行增加一空行,光标跳转至空行开头,并进入插入模式

文本搜索与替换

在命令模式下,可执行以下命令对文本进行搜索和替换

/Turka                              文件中向下搜索“Turka”
?Turka                              文件中向上搜索“Turka”这个词
n                                       如果使用`/`搜索,跳转到匹配列表的下一个位置;否则跳转到匹配列表的上一个位置
N                                       如果使用`/<keyword>`搜索,跳转到匹配列表的上一个位置;否则跳转到匹配列表的下一个位置

/\cTurka                             文件中搜索Turka,但是忽略大小写

:s/Dangdang/Turka/g                  将文件中的“Dangdang”全部替换成“Turka”
:1,100s/Dangdang/Turka/g             将文件中 1 到 100 行的“Dangdang”全部替换成“Turka”
:1,100s/Dangdang/Turka/gc            将文件中 1 到 100 行的“Dangdang”全部替换成“Turka”,但是都会叫你确认
:m,ns/Dangdang/Turka/[iceg]
#i表示替换过程中,忽略大小写;c表示替换过程中要进行交互确认;e用户控制是否显示错误;g表示如果一行中找到多个关键字,则一并替换
:!<bash command>                        退出 vim 后执行 bash 命令,再返回 vim,这种改配置就很方便,比如:!systemctl restart tengine

:%!xxd                                  以十六进制查看文件内容 
:%!xxd -r                               恢复原状

:set fileencoding                       查看当前文件编码
:se nu                                  显示行号

常用操作组合


#多行复制
v       首先按 v 进入行选择模式,然后通过 Up/Down 键选择多行
y       将选中的多行复制到缓冲区中
        光标跳转到要粘贴的位置
p       将缓冲区中的多行复制到光标位置

#格式化代码
ggvG=   格式化文件中所有代码

#将某列文本转化成大写 /小写
V       按 V 进入列选择模式,然后通过 Left/Right, Up/Down 选择插入列的位置
U       按 U 将选中的一列文本转化为大写;按 u 则将其转化为小写