Linux入门-2 VIM基础
启动与退出
vim
只启动vimvim <filename>
打开文件,如果不存在则新建
模式
- Normal:其他模式下按ESC可进入此模式
- Insert:Normal模式下输入i,I,a,A,o,O,r,R,输入命令时加前缀
i_
- Visual:Normal模式下输入":",输入命令时加前缀
i_
进入插入模式
命令 | 操作 |
---|---|
i | 在当前字符前插入 |
I | 在当前行首插入 |
a | 在当前字符后插入 |
A | 在当前行末插入 |
o | 在当前行下插入新行 |
O | 在当前行上插入新行 |
命令
operator [number] motion
删除、复制、粘贴
命令 | 操作 |
---|---|
x | 向后删除一个字符(Delete) |
X | 向前删除一个字符 |
nx | 向后删除n个字符 |
nX | 向前删除n个字符 |
dd | 删除行 |
ndd | 删除n行 |
dG | 删除之后的所有行 |
d1G | 删除之前的所有行 |
yy | 复制当前行 |
nyy | 复制n行 |
yG | 复制之后的所有行 |
y1G | 复制之前的所有行 |
p | 粘贴到下一行 |
P | 粘贴到上一行 |
u | 撤销上一个操作 |
U | 撤销当前行的改动 |
Ctrl+r | 恢复改动(撤销撤销) |
光标控制
命令 | 操作 |
---|---|
方向键或kjhl | 移动一个字符或一行 |
w | 到下一个词的开头 |
e | 到下一个词的结尾 |
b | 到上一个词,可以加n |
Home或0或Shift+6 | 到行首 |
End或Shift+4 | 到行尾 |
nG(n是数字) | 到该文本的第n行 |
G | 到文本的最末行 |
gg | 到该文本的首行 |
H | 到当前屏幕的最顶行 |
M | 到当前屏幕的中央那一行 |
L | 到当前屏幕的最底行 |
n回车(n是数字) | 向下移动n行 |
n空格(n是数字) | 向右移动n个字符 |
Ctrl+f或PageUp | 向前翻页 |
Ctrl+b或PageDown | 向后翻页 |
Ctrl+d | 屏幕向前移动半页 |
Ctrl+u | 屏幕向后移动半页 |
m[a-z | A-Z] |
'[a-z | A-Z] |
查找与替换
命令 | 操作 |
---|---|
/word | 向后查找,按n 继续搜后一个,Shift+n 向前 |
?word | 向前查找,按n 继续搜前一个,Shift+n 向后 |
% | 查找括号的配对 |
r | 替换当前字符 |
😒/old/new/g | 替换old为new,g表示global |
:n1,n2s/word1/word2/g | 将n1-n2行间的word1替换为word2,也可以用”#”代替”/” |
:1,$s/word1/word2/g | 将第一行到最末行的word1替换为word2 |
:%s/old/new/g | 全文替换 |
:1,$s/word1/word2/gc | 在替换前需要用户确认 |
EX模式
命令 | 操作 |
---|---|
:w [filename] | 保存 |
:q | 退出 |
:q! | 强制退出,不保存 |
:x | 保存并退出,==wq |
:set number | 显式行号 |
:set nonumber | 不显示行号 |
:!系统命令 | 执行系统命令并显示结果 |
:sh | 切换到命令行,使用ctrl+d返回vim |