Vim键盘快捷键和命令
Vim是一个功能丰富且完全可定制的文本编辑器,具有难以记住的无数命令和键绑定。Vim用户通常会忘记许多命令和快捷方式,他们需要一个快速的参考来回忆起来。
在这个快速指南中,我将列出每个Vim用户口袋里必须有的常见Vim快捷方式。
模式切换
Vim有多种模式,这些模式对编辑很重要,比如用于键绑定和命令的普通模式、用于键入文本的插入模式和用于选择文本的可视化模式。
插入模式
我 | 在光标前插入文本 |
我 | 在行首插入文本 |
一个 | 在光标后追加文本 |
一个 | 在行后追加文本 |
o | 将文本插入到下面的新行 |
O | 将文本插入到新行中 |
正常模式
Esc | 进入正常模式 |
: | 在正常模式下输入命令 |
视觉模式
v | 进入可视模式 |
V | 进入可视线条模式 |
Ctrl + v | 进入可视块模式 |
亚历山大-伍尔兹 | 选择一个单词 |
ab | 用()选择一个块 |
aB | 用{}选择一个block |
在 | 选择带有标记的块 |
ib | Select inner block with () |
iB | 用{}选择内部块 |
它 | 选择带有标记的内部块 |
取代
R | 进入替换模式 |
打开文件
在终端中使用Vim命令可以打开Vim中的文件。但是,如果您已经在缓冲区中,则在正常模式下使用:edit命令和文件名。
e: | 打开当前缓冲区中的文件 |
v: | 以只读方式打开文件 |
注意:e和:v命令也可以分别只使用:edit和:view命令来使用。
写文件
Vim编辑器不会自动保存文件,除非您使用该命令编写文件。
w: | 将更改保存在当前缓冲区中 |
Vim在4秒后或输入200个字符后将文件更改保存到交换文件中。如果您不小心关闭了会话,您将得到一个恢复提示。
退出文件
在Vim编辑器中有各种命令和键绑定可以退出该文件。
:问 | 如果未对文件进行任何更改,则退出当前缓冲区 |
:问! | 在不保存的情况下退出当前缓冲区 |
:质量保证 | 关闭所有文件 |
:wq或😡 | 保存更改并退出当前缓冲区 |
ZZ | 保存更改并退出当前缓冲区 |
的ZQ | 退出当前缓冲区而不保存更改 |
如果您在当前缓冲区中创建了没有名称的文件,那么将提示您在退出Vim编辑器之前输入文件名。
运动
虽然许多现代的功能已经融入到普通的Vim中,但从本质上讲,它是一个面向键盘的文本编辑器。Vim中的移动主要是通过键绑定完成的。
下面将介绍在Vim中通过字符、行、单词或句子移动光标。
字与行
h | 向左移动一个字符 |
j | 向下移动一个字符 |
k | 向上移动一行 |
l。 | 向右移动一条线 |
^ | 移动到跳过空白的行第一个字符 |
$ | 到队尾去 |
0 | 移动到行首,包括空格 |
gg | 移动到文件的第一行,不包括空白 |
G | 移到文件的最后一行,不包括空白 |
+ | 移动到下一行,不包括空白 |
- - - - - - | 移动到前一行,不包括空白 |
fs | *移动到当前行的下一个s |
Fs | 移动到当前行中前面的s |
ts | 移动到当前行的下一个s |
Ts | 移动到当前行的前一个s |
*使用;(向前)和(向后)重复f、f、t和t的动作。
词
w | 向前移动一个单词(到第一个字母) |
b | 按单词向后移动(到第一个字母) |
e | 向前移动一个单词(直到最后一个字母) |
通用电气 | 向后移动一个单词(到最后一个字母) |
句子和段落
) | 转到下一个句子(开头) |
( | 转到上一句(开头) |
} | 进入下一段(开头) |
{ | 移到上一段(开头) |
编程
% | 在括号或注释之间切换,如(),{},[]或# |
gd | 转到局部变量 |
gD | 转到全局变量 |
页面
Ctrl + b | 向上翻页 |
Ctrl + f | 下一页 |
Ctrl + u | 向上翻页(一半) |
Ctrl + d | 下页(半页) |
屏幕
zz | 将当前行移动到屏幕顶部 |
zt型 | 将当前行移动到屏幕中央 |
zb | 将当前行移动到屏幕的末尾 |
H | 将光标移动到屏幕顶部 |
米 | 将光标移到屏幕中央 |
l。 | 将光标移动到屏幕底部 |
Ctrl + e | 将屏幕向下移动一行 |
Ctrl + y | 将屏幕向上移动一行 |
复制、剪切和粘贴
在任何文本编辑器或文字处理程序中,复制、剪切和粘贴都是核心功能。在Vim中,这些都是通过命令完成的。
y | 抽取一个字符或选段 |
d | 删除一个字符或选择 |
x | 删除一个字符 |
年代 | 删除一个字符并启用插入模式(s是替换) |
年代 | 删除一行并启用插入模式 |
C | 从光标位置删除一行并启用插入模式 |
cc | 删除一行并启用插入模式 |
yy | 猛拉一条线 |
dd | 删除一行 |
“* y | 拖拽到系统剪贴板 |
Vim中的y和d操作符分别类似于copy和cut。这些操作符可以与计数和运动命令一起使用。例如,要复制当前行和当前行以下2行,使用y2j,要复制3行,使用3yy。
使用:put命令或p来粘贴剪切的文本。p命令还接受计数和运动。
p | 将文本粘贴到光标后面 |
P | 将文本粘贴到光标前面 |
“* p | 从系统剪贴板粘贴 |
要将当前拖动的行粘贴4次,请使用4p。
撤销和重做
要撤消和重做更改,Vim中有专门的命令。
u | 撤销更改 |
U | 撤消一行中的最后更改 |
Ctrl + r | 重做上次的更改 |
搜索
在编辑大文件时,搜索变得很重要。Vim提供了各种命令来简化搜索。
/文本 | 向前搜索:向前搜索文本;这里的text可以是一个字母或者一个单词 |
/文本\ c | 搜索文本,忽略大小写 |
文本吗? | 向后搜索文本 |
n | 向前搜索最后搜索的文本(\和?) |
N | 向后搜索最后搜索的文本(\和?) |
:能剧 | 删除搜索突出显示 |
注意,搜索不是命令,在使用/和?搜索模式之前不需要冒号(:)。
取代
要替换字符或文本,Vim中有一个专用的键绑定。
r | 替换光标下的字符 |
R | 要启用替换模式和替换文本,直到按下Esc键 |
查找和替换
可以使用命令来查找和替换特性。
: % s /文本/替换/ g | 在整个文件中搜索文本,并用replace string替换所有出现的文本(所有出现的文本) |
: % s / /替换文本 | 在整个文件中搜索文本,并用replace string替换所有出现的文本(仅替换一行中第一次出现的文本) |
替换
替换是一种删除文本并用另一个字符或字符串替换它的方法。
年代 | 删除一个字符并启用插入模式 |
年代 | 删除一行并启用插入模式 |
删除文本后,将启用插入模式,可以插入任何被替换的文本。
选项卡
Vim还允许在选项卡的帮助下一次处理多个缓冲区。在Vim中有各种命令可以有效地管理选项卡。
:课程 | 创建一个新选项卡 |
: tabc | 关闭当前选项卡 |
:不要 | 关闭除当前选项卡以外的所有选项卡 |
: tabdo | 在所有选项卡上执行命令 |
gt | 移动到下一个选项卡 |
gT | 移动到上一个选项卡 |
gt | 移动到选项卡 |
: tabedit | 在新选项卡中打开文件 |
: tabfind | 找到一个文件,并在一个新的选项卡中打开它,如果存在的话 |
:标签 | 列出所有选项卡 |
窗口分割
在Vim中拆分窗口允许在同一窗口中打开多个文件。
: sp | 将文件打开到一个新的水平分割窗口 |
:对 | 将文件垂直打开到新的拆分窗口 |
Ctrl + w s | 水平地分割一个窗口 |
Ctrl + w v | 垂直地分割一个窗口 |
Ctrl + c w | 关闭当前窗口 |
Ctrl + w w | 在窗口之间切换 |
Ctrl + w起来 | 在分割窗口中切换到上 |
Ctrl + w下来 | 在拆分窗口中向下切换 |
Ctrl + w左 | 在分割窗口中向左切换 |
Ctrl + w对吧 | 在分割窗口中向右切换 |
Ctrl + w + | 将当前窗口的大小增加一个 |
Ctrl + w - | 将当前窗口的大小减小一个 |
:调整 | 调整当前窗口的大小 |
是任意整数。
标志着
Vim中的标记类似于位置标记或书签,可以稍后访问,对于导航大文件特别有用。
马: | 在当前光标位置创建标记“a” |
“一个 | 跳过标记“a”;把游标放在精确标记的位置 |
“一个 | 跳过标记“a”;将光标放在行首 |
:标志 | 列出标记 |
: delmarks | 删除标记“a” |
: delmarks ! | 删除所有小写标记 |
d萨那 | 从当前行到标记a处删除行 |
吸烟者 | 将行从当前行拉到标记a |
:“一个”,双相障碍 | 删除从标记a到标记b的所有行 |
:“一个” | 把所有的线从a点拉到b点 |
寄存器
在Vim中,寄存器是用于存储文本或操作以供以后访问的内存位置。默认情况下,Vim有10种类型的寄存器用于各种任务,例如在抓取或删除后存储文本。
:注册 | 列出所有登记册 |
“哦 | 猛拉文本以注册' a ' |
”美联社 | 粘贴存储在寄存器' a '中的文本 |
“* y | 将文本拖拽到系统剪贴板 |
“* p | 从系统剪贴板中放入文本 |
表示回车或回车键。
宏
Vim中的宏在寄存器的帮助下用于存储一组命令。
qm | 开始记录宏 |
问 | 停止录制宏 |
@m | 执行宏m |
@@ | 执行最后一个宏 |
关键地图
在Vim中,键映射用于将复杂命令与键绑定。
:地图 | 包含一组键,并包含键绑定或命令,例如;要使用ctrl+a选择文件中的所有文本,键映射将是:map ggVG |
:映射 | 取消当前缓冲区中的映射 |
: mapc | 删除当前缓冲区中的所有映射 |
折叠
在Vim中,折叠用于将几行折叠成一行,以保持文本的组织性。
zf | 通过运动和计数来创建一个折叠 |
咱 | 切换折叠 |
佐薇 | 打开折叠 |
佐 | 闭合折痕 |
zd | 删除折叠 |
zR | 打开所有折叠 |
缩进
缩进非常重要,特别是在使用Vim进行开发时。
>> | 缩进文本 |
iB | 用大括号{}缩进内部块 |
5 = = | 重新缩进5行 |
% = | 使用()和{}重新缩进块 |
gg = G | 重新缩进整个文件 |
编辑
许多命令可以帮助编辑文本。
J | 连接当前行下面的行 |
gJ | 连接当前行下面的行,不带空格 |
~ | 切换光标下字符的大小写和所选内容 |
. | 重复:重复最后的改变或命令 |
ggVG | 选择全部 |
:设置列表 | 它显示隐藏字符,例如对于tab,它是^I符号,而$显示行尾 |
历史
下面将介绍Vim命令历史记录和搜索历史记录的快捷键。
问: | 列出命令历史记录 |
q / | 列出搜索历史记录 |
Ctrl + C | 关闭命令或搜索历史记录分割 |
结论
Vim是一个基于终端的编辑器,设计用于使用键盘快捷键。本指南列出了所有重要的Vim键盘快捷键。所有快捷键都按照它们支持的功能进行分类。还提到了一些命令以供快速参考。