本文内容精简、整理、摘抄、有感于《鸟哥的Linux私房菜 - 基础篇第四版》第九章 • vim程序编辑器。
vi/vim File
,打开文件后即进入当前模式i,I,a,A,o,O,r,R
任意键进入:,/,?
任意键进入一般指令模式下,对应的常用操作键:
光标移动 | 说明 |
---|---|
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常用指令示意图