# vim常用命令,linux必备
# 前言
掌握vim是linux必备技能,当掌握了vim的操作,很多时候比文本编辑器或IDE更高效。

# 移动与跳转
| 命令 | 说明 |
|---|---|
set nu | 显示行号; |
set nonu | 取消显示行号; |
0 | 数字0,移动到行首; |
$ | 移动到行尾; |
gg | 移动到文档的第一行;与1G一样; |
G | 移动到文档的最后一行; |
nG | n为数字,移动到第n行; |
n<回车> | 向下移动n行; |
Ctrl + f | 向下翻页,即Page Down; |
Ctrl + b | 向上翻页,即Page Up; |
Ctrl + d | 向下翻半页; |
Ctrl + u | 向上翻半页; |
h | 向左; |
j | 向下;nj表示向下移动n行; |
k | 向上; |
l | 向右; |
H | 移动到屏幕第一行; |
M | 移动到屏幕中间一行; |
L | 移动到屏幕最后一行; |
+ | 非空格符的下一行; |
- | 非空格符的上一行; |
# 删除与复制
| 命令 | 说明 |
|---|---|
dd | 删除当前行; |
ndd | 向下删除n行; |
dG | 删除光标后所有;D效果一样; |
d1G | 删除光标前所有; |
d$ | 删除当前行光标后所有; |
d0 | 删除当前行光标前所有; |
yy | 复制当前行; |
nyy | 往下复制n行; |
yG | 复制光标后所有; |
y1G | 复制光标前所有; |
y$ | 复制当前行光标后所有; |
y0 | 复制当前行光标前所有; |
p、P | p下一行粘贴,P上一行粘贴; |
u | 复原上一次操作; |
Ctrl + r | 重复上一次操作; |
# 搜索和替换
| 命令 | 说明 |
|---|---|
/word | 向下寻找字符串; |
?word | 向上寻找字符串; |
n | 重复上一个搜索动作;之前向下,现在也向下; |
N | 反向重复上一个搜索动作; |
:wq | 保存后退出;:wq!,强制保存后退出; |
:n1,n2s/word1/word2/g | 在n1与n2行之间,用word2替换word1;如50,110s/pkslow/PKSLOW/g; |
:1,$s/word1/word2/g | 第一行到最后一行,即全文搜索替换; |
如果替换的字符串有/,要用转义::1,$s/\/opt\/pkslow/\opt\/PKSLOW/g。
# 文件操作
| 命令 | 说明 |
|---|---|
:w | 保存 |
:w! | 强制保存; |
:q | 退出不保存; |
:q! | 强制退出不保存; |
:wq | 保存后退出;:wq!,强制保存后退出; |
:w filename | 另存为 |
:n1,n2 w filename | 将n1到n2另存为; |
:r filename | 读另一个文件内容; |
! command | 暂时离开vi执行命令; |
# 其它命令
| 命令 | 说明 |
|---|---|
syntax on | 打开语法高亮; |
set mouse=a | 支持使用鼠标; |
set encoding=utf-8 | 设置编码; |
set autoindent | 回车下一行自动保持上一行缩进; |
set relativenumber | 显示光标所在的相对行号; |
set showmatch | 遇到括号,自动高亮另一个相对的括号; |
set hlsearch | 高亮显示搜索匹配结果; |
set ignorecase | 搜索时忽略大小写; |
set history=1000 | 记录历史命令数; |
参考文档:
← Linux Linux常用命令整理 →