本文内容精简、整理、摘抄、有感于《鸟哥的Linux私房菜 - 基础篇第四版》第九章 • vim程序编辑器。
vi/vim模式
-
一般指令模式 ( command mode )
-
vi/vim File
,打开文件后即进入当前模式
-
-
编辑模式 ( edit mode )
- 一般指令模式下,按
i,I,a,A,o,O,r,R
任意键进入
- 一般指令模式下,按
-
指令列命令模式 ( command-line mode )
- 一般指令模式下,按
:,/,?
任意键进入
- 一般指令模式下,按
快捷键
一般指令模式下,对应的常用操作键:
光标移动 | 说明 |
---|---|
k 或 ↑
|
向上移动 |
j 或 ↓
|
向下移动 |
h 或 ←
|
向左移动 |
l 或 →
|
向右移动 |
ctrl + f 或 page up
|
向下翻页 |
ctrk + b 或 page down
|
向上翻页 |
ctrk + d |
向下翻半页 |
ctrk + u |
向上翻半页 |
n + 空格键 |
右移n个字符 |
0 或 home
|
移动到当前列最前面 |
$ 或 end
|
移动到当前列最后面 |
H |
屏幕第一行最前面 |
M |
屏幕中间行最前面 |
L |
屏幕最后一行最前面 |
G |
跳到文件最后一列 |
n + G |
跳到文件第n列 |
gg |
跳到文件第一列,相当于1G
|
n + enter键 |
往下移动n列 |
搜索、替换 | 说明 |
---|---|
/word |
向下搜索 |
?word |
向上搜索 |
n |
搜索匹配的下一处 |
N |
搜索匹配的上一处 |
?word |
向上搜索 |
:n1,n2s/word1/word2/g |
将n1到n2行的所有word1替换成word2 |
:1,$s/word1/word2/g[c] |
全局搜索,将所有word1替换成word2,最后那个可选的c用于在全局替换前进行确认 |
删除、复制及替换 | 说明 |
---|---|
x 或 del
|
向后删除一个字符 |
X 或 backspace
|
向前删除一个字符 |
n + x |
向后删除n个字符 |
dd |
整行删除 |
ndd |
向下n行删除 |
dnG |
向上删除到第n行 |
dG |
向下删除全部 |
d$ |
删除光标处到最后面 |
d0 |
删除光标处到最前面 |
yy |
复制整行 |
nyy |
向下复制n行 |
ynG |
向上复制到第n行 |
yG |
向下复制全部 |
y$ |
复制光标处到最后面 |
y0 |
复制光标处到最前面 |
p |
复制内容从下一行开始粘贴 |
P |
复制内容从上一行开始粘贴 |
J |
当前行与下一行合并成一行 |
u |
还原前一个操作 |
ctrl + r |
重做前一个操作 |
. |
重复做上一个操作 |
从一般指令模式进入编辑模式,对应的常用操作键:
操作 | 说明 |
---|---|
i |
光标所在处前开始插入 |
I |
所在列最前面开始插入 |
a |
光标所在处后开始插入 |
A |
所在列最后面开始插入 |
o |
光标所在处上一行开始插入 |
O |
光标所在处下一行开始插入 |
r |
替换模式,只取代光标处字符一次 |
R |
替换模式,一直取代光标处字符直到按ESC 退出 |
ESC |
退出编辑模式,回到一般指令模式 |
从一般指令模式进入指令列模式下对应的常用操作键:
操作 | 说明 |
---|---|
:w |
保存,但不退出 |
:w! |
强制保存(跟用户的操作权限有关) |
:q |
退出vi/vim(没有操作的情况下可成功退出) |
:q! |
强制退出vi/vim,也不保存修改 |
:wq |
保存修改并退出vi/vim |
ZZ |
保存修改后退出vi/vim |
:w [file] |
另存为file |
:n1,n2 w [file] |
将n1到n2列另存为file |
:r [file] |
将file的内容追加到光标下一列 |
:! [command] |
暂离vi/vim编辑执行后面的command,按Enter 后返回 |
:set nu 或 :set number
|
显示行号 |
:set nonu 或 :set nonumber
|
取消显示行号 |
区块选择
操作 | 说明 |
---|---|
v |
字符选择,将光标移动过的位置全部选择 |
V |
列选择,将光标移动过的位置全部选择 |
ctrl + v |
区块选择,将光标移动过的位置全部选择 |
y |
复制上述所选 |
d |
删除上述所选 |
p |
粘贴上述所选 |
多文件编辑
vim还支持同时打开多个文件,用于跨文件操作:vim file1 file2 file*
操作 | 说明 |
---|---|
n |
编辑下一个文件 |
N |
编辑上一个文件 |
files |
列出当前vim编辑的所有文件 |
多窗口功能
操作 | 说明 |
---|---|
sp [filename] | 开启多窗口,如果不输入默认为当前文件 |
ctrl + w + j 或 ctrl + w + ↓
|
将光标移动到下一个窗口 |
ctrl + w + k 或 ctrl + w + ↑
|
将光标移动到上一个窗口 |
ctrl + w + q 或 :q
|
退出当前窗口 |
其它功能
代码提示补全
环境设定。
set all
命令用于查看所有的设定值,vim的设定文件在一般放置在/etc/vim/vimrc
,自定义下建议新建保存在~/.vimrc
中vim常用指令示意图
重点回顾
欢迎关注我的个人公众号:超级码里奥
如果这对您有帮助,欢迎点赞和分享,转载请注明出处