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 vi/vim (opens new window)
Vim 配置入门 (opens new window)