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键盘快捷键。所有快捷键都按照它们支持的功能进行分类。还提到了一些命令以供快速参考。