Tools - Editer - Vim

电子技术小屋

插入模式

左下角会显示 – 插入 –

按键功能
i光标前插入
I(大写i)本行开始处插入
a光标后插入
A本行末插入
o光标下插入新行
O光标上插入新行
[esc]退出插入模式,进入正常模式

正常模式

移动

字符

按键功能
j 或 ↓向下移动
k 或 ↑向上移动
h 或 ←向左移动
l(小写L) 或 →向右移动

按键功能
0、^ 或 [home]光标移至行首
$ 或 [end]光标移至行末

屏幕

按键功能
H光标移至屏幕上端行首
M光标移至屏幕中间行首
L光标移至屏幕下端行首
zt光标所在位置移到屏幕上方
zz光标所在位置移到屏幕中间
zb光标所在位置移到屏幕下方
CTRL + f向下翻页
CTRL + b向上翻页
CTRL + d向下翻半页
CTRL + u向上翻半页

文件

按键功能
gg光标跳到第1行
G光标移至文件末行首
15G光标移至15行行首
:4光标移至第4行行首
[enter]光标移至下行行首

编辑

复制

按键功能
yy复制本行
nyy复制当前行一下n行
y$复制光标处到行末

删除

按键功能
x删除光标所在处字符
nx删除光标后n个字符

剪切(删除)

按键功能
x剪切光标所在处字符
nx剪切光标后n个字符
dd剪切本行
ndd剪切本行以下n行
d$ 或 D剪切光标处到行末
:n1,n2d剪切n1至n2行

粘贴

按键功能
p(小写)粘贴在光标所在行下
P(大写)粘贴在光标所在行上

搜索

按键功能
/string向下搜索指定字符串(string)
?string向上搜索指定字符串
: set noic不忽略大小写
: set ic搜索时忽略大小写
n跳到搜索字符串的下一个结果
N跳到搜索字符串的上一个结果
*向下查找光标所在单词
#向下查找光标所在单词
:set nohlsearch取消搜索高亮显示
:set hlsearch设置搜索高亮显示
:g/string只显示包含string的行
:g!/string 或 :v/string显示不包含string的行

替换

按键功能
:s/old/new替换当前行 old 为 new
:%s/old/new/g全文替换指定字符串, /g不询问全替换,/c每个单独询问是否替换
:n1,n2s/old/new/g在 n1 至 n2 行之间替换字符串

撤销修改

按键功能
u撤销上一步操作
CTRL + r恢复撤销(重做)

改写单个字符:光标移动到需要替换的字符处,按 r 键加要替换的字符

文件操作

按键功能
:wq 或 ZZ保存并退出
:q退出
:q!不保存退出
:w仅保存
:w new_filename另存为new_filename
:wq!强行保存退出,仅文件所有者和root用户可以
:ol查看历史文件列表
:f new_filename重命名文件,但不保存

多文件打开

vim -o file1 file2 横排打开两个文件

按键功能
:vsp filename 或 :vnew filename竖排打开新文件filename
:vsp竖排再打开同文件
:vnew竖排新打开vim窗口
:sp filename 或 :new filename横排打开新文件filename
:sp横排再打开同文件
:new横排新打开vim窗口
:all切换窗口为横排
:close关闭当前窗口
CTRL + ww切换编辑窗口
CTRL + w + j 或 CTRL + w + ↓向下跳转窗口
CTRL + w + k 或 CTRL + w + ↑向上跳转窗口
CTRL + w + h 或 CTRL + w + ←向左跳转窗口
CTRL + w + l 或 CTRL + w + →向右跳转窗口
CTRL + w + r向下或右移动窗口
CTRL + w + R向上或左移动窗口
CTRL + w + x交换窗口

比较

vimdiff file1 file2 竖排打开两个文件并比较

按键功能
]c调转到下一个不同处
[c跳转到上一个不同处
dp该差异点使用当前文件的
do该差异点使用其它文件的
:diffupdate手动刷新重新比较
:qa退出vimdiff

代码

按键功能
gg=G全文格式化(自动缩进)
4G=10G自动缩进4至10行
:1,5s/^/#/g1到5行行首加 “#”
:4,6s/^#//g4到6行行首去掉 “#”
:3,4s/^/\/\//g3到4行行首加 “//” 注释
:1,20s/^\s*[0-9]*\s*//g去除 1-20 行首的行号
»缩进当前行
«反向缩进当前行
:set foldmethod=indent设置用缩进表示折叠
zR展开全部折叠
zr展开当前层级折叠
zM全部折叠
zm当前层级折叠
za切换当前层级折叠/展开
zA递归折叠/展开当前大区块
zc折叠当前区块
zC递归折叠当前大区块
zo展开当前区块
zO递归展开当前大区块

其他

按键功能
!在命令后加!,表示强制执行
: !命令不退出vim执行命令
:r filename在光标所在行处导入filename文件内容
:r !命令导入命令结果
:set nu显示行号
:set nonu取消显示行号

替换模式(改写)

左下角会显示 – 替换 –

按键功能
R从光标处进入替换模式
[esc]退出替换模式,进入正常模式

可视模式

按键功能
v可视
V行可视
CTRL + v块可视(常用)
[esc]退出可视模式到正常模式

可视(v)

左下角会显示 – 可视 –

按键功能
j 或 ↓向下选中
k 或 ↑向上选中
h 或 ←向左选中
l(小写L) 或 →向右选中
^选中光标位置到行首
$选中光标位置到行末
d剪切选块
y复制选块
p(小写)在光标后粘贴选块
P(大写)在光标前粘贴选块

行可视(V)

左下角会显示 – 可视 行 –

按键功能
j 或 ↓向下选中
k 或 ↑向上选中
d剪切选块
y复制选块
p(小写)在光标后粘贴选块
P(大写)在光标前粘贴选块

块可视(CTRL + v)

左下角会显示 – 可视 块 –

按键功能
j 或 ↓向下选中
k 或 ↑向上选中
h 或 ←向左选中
l (小写L)或 →向右选中
^选中光标位置到行首
$选中光标位置到行末
d剪切选块
y复制选块
p(小写)在光标后粘贴选块
P(大写)在光标前粘贴选块
I(大写i)插入模式;选中多行,按I进入插入模式,输入要插入的字符,按[esc],完成多行批量插入字符

配置文件

用户配置文件: ~/.vimrc

系统配置文件: /etc/vimrc

文档信息

Search

    Table of Contents