vi简介
- vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、
- 替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。
- Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
- vi没有菜单,只有命令,且命令繁多。
Vi有三种基本工作模式
- 命令模式
- 文本输入模式
- 末行模式
命令模式:
用户刚刚启动 vi/vim
,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
- 常用的命令:
i
切换到输入模式【编辑模式】,以输入字符。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠末行模式输入更多命令。
文本输入模式【编辑模式】
在命令模式下按下【i】就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
ENTER
,回车键,换行BACK SPACE
,退格键,删除光标前一个字符方向键
,在文本中移动光标HOME/END
,移动光标到行首/行尾Page Up/Page Down
,上/下翻页Insert
,切换光标为输入/替换模式,光标将变成竖线/下划线ESC
,退出输入模式,切换到命令模式- 其实这个模式你可以任意输入,就像windows下的输入
末行模式【命令行模式】
- 在命令模式下按下:(英文冒号)就进入了末行模式。
- 末行模式可以输入单个或多个字符的命令,可用的命令非常多。
- 在末行模式中,基本的命令有(已经省略了冒号):
q
退出程序q!
强制退出,不保存
-w
保存文件wq
保存退出wq!
强制保存退出
按ESC键可随时退出末行模式。
vim基础操作
代码补完、编译及错误跳转等方便编程的功能特别丰富
1.1 进入插入模式:
插入模式又称为编辑模式
按键 | 作用 |
i |
插入光标前一个字符 |
I |
插入行首 |
a |
插入光标后一个字符 |
A |
插入行未 |
o |
向下新开一行,插入行首 |
O |
向上新开一行,插入行首 |
1.2 进入末行模式
在命令模式下,用户按“:”键即可进入末行模式
- 退出
按键 | 作用 |
:q |
退出 |
:q! |
退出并不保存 |
:w |
保存 |
:qw |
退出并保存 |
:x |
退出并保存 |
查找命令:
按键 | 作用 |
/ |
str查找 |
n |
下一个 |
N |
上一个 |
- 替换命令:
把abc全部替换成123
末行模式下,将当前文件中的所有abc替换成123。如果不使用g,则只会替换每一行的第一个abc :%s/abc/123/g 末行模式下,将第一行至第10行之间的abc替换成123 :1, 10s/abc/123/g
vim里执行 shell 下命令:
末行模式里输入!,后面跟命令
- 进入命令模式:
ESC
:从插入模式或末行模式进入命令模式
移动光标
按键 | 作用 |
h |
左移 |
j |
下移 |
k |
上移 |
l |
右移 |
M |
光标移动到当前屏幕的中间行 |
L |
光标移动到当前屏幕最后一行行首 |
gg |
光标移动文件开头 |
G |
光标移动到文件末尾 |
nG |
移动到指定行,n是行号G |
w |
向后一次移动一个字 |
b |
向前一次移动一个字 |
{ |
按段移动,上移 |
} |
按段移动,下移 |
Ctr-d |
向下翻半屏 |
Ctr-u |
向上翻半屏 |
Ctr-f |
向下翻一屏 |
Ctr-b |
向上翻一屏 |
撤销命令:
按键 | 作用 |
u |
一步一步撤销 |
Ctr-r |
反撤销 |
删除命令:
按键 | 作用 |
x |
删除光标后一个字符,相当于 Del |
X |
删除光标前一个字符,相当于 Backspace |
dd |
删除光标所在行,dd n 删除指定的行数 |
D |
删除光标后本行所有内容,包含光标所在字符 |
d0 |
删除光标前本行所有内容,不包含光标所在字符 |
dw |
删除光标开始位置的字,包含光标所在字符 |
de |
删除光标所在位置到本单词末尾 |
dE |
删除光标所在位置到本单词末尾包括标点符号 |
db |
删除光标所在位置到前面单词 |
dB |
删除光标所在位置到前面单词包括标点符号 |
d$ |
删除光标所在位置到本行末尾 |
复制粘贴:
按键 | 作用 |
yy |
复制当前光标所在行,yy n 复制 n 行 |
p |
在光标所在位置向下新开辟一行,粘贴 |
替换操作:
按键 | 作用 |
r |
替换当前字符 |
R |
替换当前行光标后的字符 |
文本行移动:
按键 | 作用 |
>> |
文本行右移 |
<< |
文本行左移 |
- 重复命令:
按键 | 作用 |
. |
重复上一次操作的命令 |
可视模式:
按键 | 作用 |
v |
按字符移动,选中文本 |
V |
按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动 |