基本命令
以下是一些基本的Vim命令:
-
i
:在当前光标位置插入文本。 -
x
:删除当前光标所在位置的字符。 -
: 切换到底线命令模式,以在最底一行输入命令。
-
:w
:保存文件。 -
:q
:退出Vim编辑器。 -
:q!
:强制退出Vim编辑器,不保存文件。 -
:wq
:保存文件并退出Vim编辑器。
光标移动命令
在编辑文本时,移动光标是一个常见的操作。以下是一些常用的光标移动命令:
-
h
:将光标向左移动一个字符。 -
j
:将光标向下移动一行。 -
k
:将光标向上移动一行。 -
l
:将光标向右移动一个字符。 -
w
:将光标移动到下一个单词的开头。 -
e
:将光标移动到当前单词的末尾。 -
b
:将光标移动到上一个单词的开头。 -
0
:将光标移动到当前行的开头。 -
$
:将光标移动到当前行的末尾。 -
G
:将光标移动到文件的末尾。 -
gg
:将光标移动到文件的开头。 -
/<pattern>
:向下搜索<pattern>。
-
ctrl+f:
屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)。 -
ctrl+b:屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)。
-
ctrl+d:屏幕『向下』移动半页.。
-
ctrl+u:屏幕『向上』移动半页。
-
+:光标移动到非空格符的下一行。
-
-:光标移动到非空格符的上一行。
-
n<space>:那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
-
H:光标移动到这个屏幕的最上方那一行的第一个字符。
-
M:光标移动到这个屏幕的中央那一行的第一个字符。
-
L:光标移动到这个屏幕的最下方那一行的第一个字符。
-
nG:n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)。
-
n<Enter>:n 为数字。光标向下移动 n 行(常用)。
文本编辑命令
Vim具有丰富的文本编辑命令,以下是一些常用的命令:
- x:在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键)。
- nx:n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
-
dd
:删除当前行。 -
d0:那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符。
-
d$:删除游标所在处,到该行的最后一个字符。
-
dG:删除光标所在到最后一行的所有数据。
-
d1G:删除光标所在到第一行的所有数据。
-
ndd:n 为数字。剪切光标所在的向下 n 行,例如 20dd 则是剪切 20 行(常用),用 p/P 可以粘贴。
-
yy
:复制当前行。 -
y$:复制光标所在的那个字符到该行行尾的所有数据。
-
y0:复制光标所在的那个字符到该行行首的所有数据。
-
yG:复制游标所在行到最后一行的所有数据。
-
y1G:复制游标所在行到第一行的所有数据。
-
nyy:n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行。
-
p
:粘贴已复制或删除的文本。 -
a 进入插入模式,在光标下一个位置开始输入文本。
-
o:在当前行的下方插入一个新行,并进入插入模式。
-
O 在当前行的上方插入一个新行,并进入插入模式。
-
u
:撤销上一次操作。 -
Ctrl-r
:重做上一次操作。 -
r
:替换当前光标所在位置的字符。 -
c
:删除从当前光标位置到指定位置的文本并进入插入模式。 -
v
:进入可视模式,选择文本。 -
:s/<old>/<new>/g
:将当前行中的<old>
替换为<new>
。 -
:%s/<old>/<new>/g
:将整个文件中的<old>
替换为<new>
。
输入模式命令
在插入模式中,你可以输入文本。以下是一些插入模式中的常用命令:
Esc
:退出输入模式,切换到命令行模式。- enter: 回车键,换行。
- backspace:退格键,删除光标前一个字符。
- delete:删除键,删除光标后一个字符。
- home/end:移动过光标到行首/行尾。
- page up/page dn:上/下翻页。
- insert:切换光标为输入/替换模式,光标将变成竖线/下划线。
Ctrl-h
:删除光标左侧的字符。Ctrl-w
:删除光标左侧的单词。Ctrl-u
:删除当前行的所有文本。Ctrl-a
:插入文本到行首。Ctrl-e
:插入文本到行尾。Ctrl-t
:插入一个制表符。
宏命令
宏是一种将多个操作序列记录并重复执行的方法。以下是一些宏命令:
qa
:开始录制宏并将其存储在寄存器a
中。q
:停止录制宏。@a
:执行存储在寄存器a
中的宏。@@
:重复上一次执行的宏。
分屏命令
Vim可以在窗口中分屏显示文件。以下是一些分屏命令:
:sp
:水平分屏当前窗口。:vsp
:垂直分屏当前窗口。Ctrl-w h
:将光标移到左侧窗口。Ctrl-w j
:将光标移到下方窗口。Ctrl-w k
:将光标移到上方窗口。Ctrl-w l
:将光标移到右侧窗口。Ctrl-w +
:增加当前窗口的高度。Ctrl-w -
:减小当前窗口的高度。
多文件编辑命令
在Vim中,您可以编辑多个文件。以下是一些多文件编辑命令:
:e <filename>
:打开指定的文件。:tabnew <filename>
:在新选项卡中打开指定的文件。:tabnext
:切换到下一个选项卡。:tabprev
:切换到上一个选项卡。:tabclose
:关闭当前选项卡。
打开文件
在Vim中打开文件命令:
- vim filename:打开或新建一个文件,并将光标置于第一行的首部。
- vim -r filename:恢复上次 vim 打开时崩溃的文件。
- vim -R filename:把指定的文件以只读方式放入 Vim 编辑器中。
- vim + filename:打开文件,并将光标置于最后一行的首部。
- vi +n filename:打开文件,并将光标置于第 n 行的首部。
- vi +/pattern filename:打幵文件,并将光标置于第一个与 pattern 匹配的位置。
- vi -c command filename:在对文件进行编辑前,先执行指定的命令。
其他命令
以下是一些其他常用的Vim命令:
-
:set nu
:显示行号。 -
:set nonu
:隐藏行号。 -
:set expandtab
:使用空格代替制表符。 -
:set tabstop=4
:设置制表符宽度为4个字符。 -
:set hlsearch
:高亮显示搜索结果。 -
:set nohlsearch
:取消高亮显示搜索结果。 -
:set background=dark
:将背景设置为暗色。 -
:set background=light
:将背景设置为亮色。 -
ZZ:这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)。
-
ZQ:不保存,强制退出。效果等同于:q!。
-
:w 文件名:将编辑的数据储存成另一个档案(类似另存新档)。
-
:r 文件名:在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面。
-
:n1,n2 w [filename]:将 n1 到 n2 的内容储存成 filename 这个档案。
-
:! command:暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! -
.:不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)。
-
ctrl+r:重做上一个动作。
-
u:复原前一个动作。
-
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc:从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)。
-
:n1,n2s/word1/word2/g:n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
『:100,200s/vbird/VBIRD/g』。 -
n:这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
-
N:这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
-
?word:向光标之上寻找一个字符串名称为 word 的字符串。
-
/word:向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!
-
/^word:查找以 word 为行首的行。
-
/word$:查找以 word为行尾的行。