当然!这是一个VIM备忘单,其中包括一些常见的命令和快捷方式:
模式:
- 正常模式:导航和执行命令的默认模式。
- 插入模式:用于插入或编辑文本。
- 视觉模式:用于选择和操纵文本块。
- 命令行模式:用于输入命令。
导航:
-
h
或←
:向左移动光标。 -
j
或↓
:向下移动光标。 -
k
或↑
:移动光标向上。 -
l
或→
:移动光标右。 -
w
:将光标移至下一个单词的开头。 -
b
:将光标移至上一个单词的开头。 -
gg
:将光标移至文档的第一行。 -
G
:将光标移至文档的最后一行。 -
0
(零):将光标移至行的开头。 -
$
:将光标移至行末端。 -
Ctrl + f
:向前滚动一页。 -
Ctrl + b
:向后滚动一页。
编辑:
-
i
:在当前光标位置输入插入模式。 -
a
:当前光标位置后输入插入模式。 -
A
:在当前行末尾输入插入模式。 -
o
:插入当前行以下的新线路并输入插入模式。 -
O
:插入当前行上方的新线路并输入插入模式。 -
x
:删除光标下的字符。 -
dd
:删除当前行。 -
yy
:yank(复制)当前行。 -
p
:粘贴光标下方的洋基或删除的文本。 -
u
:撤消最后一个更改。 -
Ctrl + r
:重做最后一个更改。 -
.
(周期):重复最后一个更改。
视觉选择:
-
v
:输入视觉模式并选择字符。 -
V
:输入视觉模式并选择整行。 -
Ctrl + v
:输入视觉块模式,然后选择矩形块。 -
y
:yank(复制)选定的文本。 -
d
:删除选定的文本。 -
~
:更改选定文本的情况。
搜索和替换:
-
/
:输入搜索模式。 -
n
:移至搜索模式的下一个发生。 -
N
:移至搜索模式的先前发生。 -
:%s/old/new/g
:用整个文件中的“ new”替换所有“旧”的出现。
保存和退出:
-
:w
:保存文件。 -
:q
:退出vim。 -
:wq
或:x
:保存和退出。 -
:q!
:戒烟而不保存。
此备忘单仅涵盖基础知识,但是VIM是功能强大的编辑
编辑:
-
r
:替换光标下的字符。 -
s
:在光标下替换字符并输入插入模式。 -
S
:替换整个行并输入插入模式。 -
ciw
:更改光标下的整个单词。 -
cw
:从光标位置更改为单词的末尾。 -
C
:从光标位置更改为行末端。 -
x
:删除光标下的字符。 -
X
:删除光标之前的字符。 -
D
:从光标位置删除到线的末端。 -
J
:将当前线与下面的线一起加入。
撤消和重做:
-
u
:撤消最后一个更改。 -
Ctrl + r
:重做最后一个更改。
视觉块选择:
-
Ctrl + v
:输入视觉块模式,然后选择矩形块。 -
I
:在每个选定行的开头插入文本。 -
A
:在每个选定行的末尾附加文本。 -
r
:用类型的文本替换所选块。 -
d
:删除选定的块。 -
I
(资本I):缩进选定的块。 -
Shift + >
:增加所选块的缩进。 -
Shift + <
:减少所选块的缩进。
搜索并替换:
-
*
:搜索光标下的单词。 -
#
:在相反方向搜索光标下的单词。 -
:%s/old/new/gc
:用整个文件中的“ new”替换所有“旧”的出现,并确认每个替换。
复制和粘贴:
-
yy
:yank(复制)当前行。 -
p
:粘贴光标下方的洋基或删除的文本。 -
P
:粘贴了光标上方的洋基或删除的文本。
标记:
-
m<letter>
:在当前光标位置设置标记(例如,ma
设置标记'a')。 -
`<letter>`: Jump to the line of the mark (e.g.,
a
跳到标记'a')。
标签和窗口:
-
:tabnew
:打开一个新标签。 -
:tabnext
或gt
:移至下一个选项卡。 -
:tabprevious
或gT
:移至上一个选项卡。 -
:tabclose
或:tabc
:关闭当前选项卡。 -
:split
:水平拆分当前窗口。 -
:vsplit
:垂直分开当前窗口。 -
Ctrl + w
,其次是h
,j
,k
或l
:将光标移动到左侧,下方,上方或右侧的窗口。 -
Ctrl + w
接着是Ctrl + h
,Ctrl + j
,Ctrl + k
或Ctrl + l
:分别在左侧,下方,上方或右侧的窗口大小。
文件操作:
-
:e <filename>
:打开一个用于编辑的文件。 -
:saveas <filename>
:保存新名称的当前文件。 -
:b <filename>
:切换到其他缓冲区/文件。 -
:bd
:关闭当前的缓冲/文件。 -
:ls
:列出所有开放缓冲区。 -
:sp <filename>
:水平拆分窗口并打开文件。 -
:vsp <filename>
:垂直分开窗口并打开文件。 -
:tabe <filename>
:在新标签中打开文件。
使用多个文件:
-
:next
或:n
:转到参数列表中的下一个文件。 -
:prev
或:N
:转到参数列表中的上一个文件。 -
:first
:转到参数列表中的第一个文件。 -
:last
:转到参数列表中的最后一个文件。 -
:args
:列出参数列表中的所有文件。 -
:argdo <command>
:在参数列表中的每个文件上执行命令。
宏:
-
q<letter>
:开始将宏记录到指定的寄存器中(例如,qa
开始记录到寄存器'A')。 -
q
:停止记录宏。 -
@<letter>
:执行存储在指定寄存器中的宏(例如,@a
执行存储在寄存器'a'''的宏)。
折叠:
-
zf<motion>
:使用指定的运动创建一个折叠(例如,zfap
在段落周围创建一个折叠)。 -
zo
:打开一个折叠。 -
zc
:关闭折叠。 -
zm
:增加整个缓冲区的折叠水平。 -
zr
:降低整个缓冲区的折叠水平。 -
zi
:切换折叠/关闭。
视觉凹痕:
-
=
:自动指示代码的选定块。 -
==
:自动识别当前行。 -
>
:缩进右侧的选定块。 -
<
:缩进左侧的选定块。
命令行模式:
-
:!<command>
:从vim内执行shell命令。 -
:set <option>
:设置一个特定选项(例如,:set number
显示行号)。 -
:normal <command>
:在范围内的每行上执行一个普通模式命令(例如,:%normal dd
删除所有行)。
标记:
-'
+ <letter>
:跳到包含标记的行的第一个非空白字符(例如,'a
跳到Mark'A'的线路)。
`+ `<letter>`: Jump to the exact cursor position of the mark (e.g.,
a
跳到标记'a')的确切光标位置。
窗口管理:
-
Ctrl + w + s
:水平拆分窗口。 -
Ctrl + w + v
:垂直分开窗口。 -
Ctrl + w + c
:关闭当前窗口。 -
Ctrl + w + o
:关闭所有窗口,除了活动。 -
Ctrl + w + h
:将光标移动到左窗口。 -
Ctrl + w + j
:将光标移动到下面的窗口。 -
Ctrl + w + k
:将光标移动到上方的窗口。 -
Ctrl + w + l
:将光标移动到右窗口。 -
Ctrl + w + =
:使所有窗户都相等。 -
Ctrl + w + [number]+
:将当前窗口的大小增加指定的线数。 -
Ctrl + w + [number]-
:将当前窗口的大小减少指定数量的行。
选项卡:
-
:tabnew <filename>
:使用指定文件打开一个新选项卡。 -
:tabclose
:关闭当前选项卡。 -
:tabonly
:关闭除当前一个选项卡外的所有其他选项卡。 -
:tabnext
或gt
:移至下一个选项卡。 -
:tabprevious
或gT
:移至上一个选项卡。 -
:tabfirst
:移至第一个选项卡。 -
:tablast
:移至最后一个选项卡。 -
:tabmove <N>
:将当前选项卡移至特定位置(例如,:tabmove 3
将当前选项卡移至第三位置)。
搜索并替换:
-
:%s/old/new/
:在整个文件的每一行中替换“旧”的第一次出现。 -
:%s/old/new/g
:在整个文件的每一行中替换“旧”的所有“旧”的出现。 -
:%s/old/new/gc
:在整个文件的每一行中替换“旧”的所有“旧”的出现,并确认每个替换。
使用寄存器:
-
"<register>yy
:yank(复制)选定的文本到特定的寄存器(例如,"ayy
yanks要注册'a')。 -
"<register>p
:粘贴特定寄存器的内容(例如,"ap
粘贴寄存器'a'的内容)。
多个光标:
-
Ctrl + v
:输入视觉块模式,然后使用“移动命令”创建多个光标。 -
Ctrl + n
:选择当前单词的下一个出现并添加光标。 -
Ctrl + x
:跳过下一个单词的下一个出现并添加光标。
使用VIM时,这些附加命令和快捷方式应为您提供更多的多功能性和效率。请记住定期练习并参考VIM的文档以进一步探索其广泛的功能。
关于作者。 Geoffrey Callaghan是Fabform.io的程序员,在form backend service团队中工作。