什么是vim
vim是从vi发展而来的一个文本编辑器。具有代码补完、编译及错误跳转等方便编程的功能。vim的官方网站:https://www.vim.org/
vi/vim的三种模式
分别为命令行模式、输入模式及底线命令模式。
命令模式
用户刚启动vi/vim时便进入到命令模式,在此状态下敲击键盘动作会被vim识别为命令,而非是字符。常见的几个命令如下:
☆ i 切换到输入模式,课输入字符;
☆ x 删除当前光标所在处的字符;
☆ : 切换到底线命令模式,以在最低一行输入命令。
输入模式
在命令模式下,按下 i 进入到输入模式。
在输入模式下常用命令如下:
☆ 字符按键以及Shift组合,输入字符;
☆ ENTER,回车键,换行;
☆ BACK SPACE,退格键,删除光标前一个字符;
☆ DEL,删除键,删除光标后一个字符;
☆ 方向键,在文本中移动光标;
☆ HOME/END,移动光标到行首/行尾;
☆ Page Up/Page Down,上/下翻页;
☆ Insert,切换光标为输入/替换模式,光标将变成竖线/下划线;
☆ ESC,退出输入模式,切换到命令模式;
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
vi/vim工作模式切换图
vi/vim按键说明
一般模式 可用的光标移动、复制粘贴及搜索替换等
移动光标的方法:
h 或 向左箭头键(←) 光标向左移动一个字符
j 或 向下箭头键(↓) 光标向下移动一个字符
k 或 向上箭头键(↑) 光标向上移动一个字符
l 或 向右箭头键(→) 光标向右移动一个字符
如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d] 屏幕『向下』移动半页
[Ctrl] + [u] 屏幕『向上』移动半页
n
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个档案的最后一行(常用)
nG n 为数字。移动到这个档案的第 n 行。
gg 移动到这个档案的第一行,相当于 1G 啊! (常用)
n
搜索替换
/word 向光标之下寻找一个名称为 word 的字符串。
?word 向光标之上寻找一个字符串名称为 word 的字符串。
n 这个 n 是英文按键。代表重复前一个搜寻的动作。
N 这个 N 是英文按键。与 n 刚好相反。
常用删除、复制与粘贴
x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 向前
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除游标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G 复制游标所在行到第一行的所有数据
yG 复制游标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)