基本命令
以下是一些基本的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为行尾的行。