介绍:
Vim一共分为3种模式:视图模式、编辑模式、命令行模式
-
视图模式(command mode):
使用Vim打开一个文件时,初始就是试图模式。如果在其他模式想切换视图模式,可以使用【ESC】键来进入视图模式。在视图模式下你可以通过按键和组合按键实现光标移动,文本删除、复制与粘贴等动作。
-
编辑模式(insert mode):
在视图模式下,通过按下【i、I、o、O、a、A、r、R】进入编辑模式。
-
命令行模式(command-line mode):
在视图模式下,输入【: / ?】任意一个按键,就可以进入该模式。除了提供读取、保存、显示行号,还可以查找数据和批量替换字符。
视图模式可以在其他模式任意切换,而其他模式只能通过视图模式切换。
按键说明:
1. 视图模式:
按键: | 功能:移动光标 |
---|---|
h或向左箭头键(←) | 光标向左移动一个字符 |
j或向下箭头键(↓) | 光标向下移动一个字符 |
k或向上箭头健(↑) | 光标向上移动一个字符 |
l或向右箭头键(→) | 光标向右移动一个字符 |
[ctrl] + [f] | 向下翻页,相当于[Page Down]键(常用) |
[ctrl] + [b] | 向上翻页,相当于[Page Up]键(常用) |
[ctrl] + [d] | 向下翻半页 |
[ctrl] + [u] | 向上翻半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n[space] | n表示【数字】,例如30[space],按下数字30后再按空格,光标会向右移动30个字符 |
0或[home] | 移动到本行最前面的字符(常用) |
$或[End] | 移动到本行最后面的字符(常用) |
H | 光标移动到屏幕最上方那一行的第一个字符 |
M | 光标移动到屏幕中央那遗憾的第一个字符 |
L | 光标移动到屏幕最下方那一行的第一个字符 |
G | 移动到最后一行(常用) |
nG | n为数字,表示移动到这个文件的第n行 |
gg | 移动到第一行,相当于1G(常用) |
n[Enter] | n为数字,表示向下移动n行(常用) |
按键: | 功能:查找与替换 |
---|---|
/word | 向后查找名称为 word 的字符串 |
?word | 向前查找名称为word的字符串 |
n | 前面两个操作后紧接着按n键,就可以重复之前的操作 |
N | 与N相反,反向重复之前的操作 |
:n1,n2s/word1/word2/g | 在第n1行和第n2行之间寻找word1这个字符串,并替换成word2(常用) |
:n1,n2s/word1/word2/gc | 与上一个类似,只不过多了确认(confirm)是否替换操作(常用) |
按键: | 功能:删除、复制与替换 |
---|---|
x与X | x为向后删除一个字符(相当于[del]键),X为向前删除一个字符(相当与[Backspace]健)(**常用) |
nx | n为数字,连续向后删除n个字符 |
dd | 删除(剪切)光标所在行(常用) |
ndd | n为数字,删除(剪切)光标所在行的向下n行,例如20dd则是删除20行(常用) |
dnG | 删除(剪切)光标所在到第n行的数据,dG则表示删除到最后一行 |
d0 | 删除(剪切)光标所在处,到该行第一个字符 |
d$ | 删除(剪切)光标所在处,到该行最后一个字符 |
yy | 复制光标所在行(常用) |
nyy | n为数字,复制光标所在行的向下n行,例如20yy则是复制20行(常用) |
ynG | 复制光标所在行到第n行的数据,yG则表示复制到最后一行 |
y0 | 复制光标所在处,到该行第一个字符 |
y$ | 复制光标所在处,到该行最后一个字符 |
p与P | p为将已复制的数据在光标下一行粘贴,P为将已复制的数据在光标上一行粘贴(常用) |
J | 将光标所在与下一行的数据结合成一行 |
c | 重复删除多个数据,例如向下删除10行,[10cj] |
u | 恢复前一个操作(相当于恢复)(常用) |
[ctrl] + r | 重做上一个操作(相当于重做)(常用) |
. | 重复以上操作(常用) |
2. 视图模式切换到编辑模式:
按键: | 操作:进入编辑模式(插入、覆盖) |
---|---|
i与I | i为在光标处进入插入模式(insert);I为在光标所在行的第一个非空字符处进入插入模式(常用) |
a与A | a为在光标处下一个字符进入插入模式;A为在光标所在行的最后一个非空字符处进入插入模式(常用) |
o与O | o为在光标所在的下一行处插入新的一行;O为光标所在行的上一行插入新的一行(常用) |
r与R | 进入替换模式,r只会替换光标所在的那一个字符一次;R会一直替换关闭所在的字符,直到按下[ESC](常用) |
[Esc] | 退出编辑模式,进入视图模式(常用) |
3. 视图模式切换到命令行模式:
按键: | 功能:保存、退出等操作 |
---|---|
:w | 将编辑的数据写入到硬盘文件中(常用) |
:w! | 若文件属性为【只读】时,强制写入该文件。不过,到底能不能写入,还是跟你对该文件的文件权限有关 |
:q | 退出vim(常用) |
:q! | 强制退出不保存 |
:wq | 保存后退出,:wq!则强制保存后退出(常用) |
ZZ | 文件没修过,则不保存退出,若修改则保存后在退出 |
:w [filename] | 将编辑的数据保存成另外一个文件(类似另存为) |
:r [filename] | 将编辑的数据中,读入另外一个文件的数据,亦即将【filename】这个文件内容加到光标所在行后面 |
:n1,n2 w [filename] | 将n1到n2 的内容保存为【filename】的文件 |
:! command | 暂时退出vim到命令行模式下执行command的显示结果。例如【:! ls /home】即可在vim当中查看/home下面以ls输出的文件信息 |
:set nu | 显示行号 |
:set nonu | 取消行号 |
参考:
《鸟哥的Linux私房菜基础学习篇第四版》