赞
踩
Vim是解决文本快速处理(尤其是服务器端)的神器,本文简单总结下常用的命令。
Vim中包括如下常见模式“
普通模式:Vim启动后的默认模式,可用于光标的移动、文本的删除等。
插入模式:向文本中插入字符。
可视化模式:用于区块选择,可通过v
一类的命令进入
命令行模式: 在命令行内输入命令。在其它模式下,通过ESC
进入命令行模式。
:set number
显示各行行号, set nonumber
取消该功能
:set list
显示制表符和行末, set nolist
取消该功能
:set fileencoding
查看当前文件编码
:e ++enc=gb18003
强制采用某种编码重新打开本文档(临时的)
:w
保存文件但不退出vim
:w file
将修改保存到file,但不退出vi
:wa
或ZZ
或:x
保存文件并退出vi
"q!
不保存文件,退出vi
:e
! 放弃所有修改,并从上次保存文件开始再编辑
通过光标移动选择指定的字符区间/行/区块,是实现其它复杂操作的基础。
->
或l
向右逐字符移动
<-
或h
左箭头,向左逐字符移动
w
下一个单词的开头, 可实现跨行
e
下一个单词的结尾,可实现跨行
b
上一个单词的开头, 可实现跨行
^
行首(第一个非空字符)
$
行末(最后一个非空字符)
0
或|
:当前行的第一列
向上箭头
或k
向上一行
向下箭头
或j
向下一行
数字+向上/下箭头
向上/下移动数字行
+
或Enter
键 下一行的第一个非空字符
-
上一行的的第一个非空字符
H
: 屏幕第一行
M
: 屏幕中建行
L
: 屏幕最后一行
(
: 句子的开头
)
: 句子的结尾
{
: 段落的开头
}
: 段落的结尾
ctrl+f
向前翻页
ctrl+b
向下翻页
gg
第一行
G
最后一行
数字+%
文档的 数字%处
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感
/text
命令行模式下输入,从文本从头开始,向下寻找目标字符串,最终定位到字符串所在行第一个非空字符
?text
命令行模式下输入,从文本从尾开始,向上寻找目标字符串,最终定位到字符串所在行第一个非空字符
n
: 配合前面的/text
和?text
使用,向同一方向寻找下一个。
N
: 配合前面的/text
和?text
使用,向相反方向寻找下一个。
查找功能还支持正则表达式,如^$
选择空行。
v
字符可视化模式,文本选择以字符为单位,跨行选择时前序行会被全部选中。
V
行可视化模式,文本选择以行为单位,直接选择所在所在行,
ctrl+v
块可视化模式,文本选择以矩形区块为单位,通过指定矩形左上角和右下角点,定义所选区块,特别适用于选择表格列等场景。
i
在光标所在位置处进入插入模式(效果类似于左侧插入)
I
在光标所在行行首进入插入模式
a
在光标所在位置右边进入插入模式(效果类似于右侧插入)
A
在光标所在行行尾进入插入模式
o
在光标所在行下,插入新的一行进入插入模式
O
在光标所在行上,插入新的一行进入插入模式
s
删除光标所在字符,并进入插入模式
S
删除光标所在行,并进入插入模式
yy
将当前行的内容复制到临时缓冲区
nyy
将第n行的内容复制到临时缓冲区
x
剪切
p
将临时缓冲区内的文本粘贴到光标后
P
将临时缓冲区内的文本粘贴到光标前
c
: 可视化模式选择高亮指定文本后,使用c
即可删除指定文本,同时进入插入模式
rchar
: 用 char 替换当前字符(注意是单个字符)
R text ESC
: 用 text 替换当前字符直到按下 Esc 键
d
: 删除,注意删除后的文本是在剪切板里的,所以仍可将其进行p
操作
db
: 删除光标前面的word
dw
: 删至下一个字的开头
d^
: 删除光标至行首
dw
: 删除光标至行末
dd
: 删除一行
dG
: 从当前行一直删至文件结束
数字+dd
: 删除光标起的若干行
:m,nd
: 删除第m-n行,其实这是进入命令行模式后的删除,此处的m和n可以采用数字表示绝对行号,也可以采用+m
表示从本行开始往下的第m
行(+0表示本行),-m
同理
>
增加光标区域所在行的缩进
<
减少光标区域所在行的缩进
u
撤销上一步操作
U
撤销当前行的所有修改
ctrl+r
恢复上一步被撤销的操作
:r file
读入文件 file 内容,并插在当前行后
:nr file
读入文件 file 内容,并插在第 n 行后
:ranges/oldtext/newtext/g
全文范围内,用newtext 替换 oldtext
:m,ns/oldtext/newtext
第m-n行范围内,用newtext 替换 oldtext,这里的m和n除了用绝对行号,还可以使用相对行号
:g/text1/s/text2/text3
全文范围内,查找包含 text1 的行,用 text3 替换 text2,
:g/text/command
上一条命令的通用版本,在所有包含 text 的行运行 command 所表示的命令,这里的g可以改为指定行区间
:v/text/command
上一条命令的反向命令,即所有不包含 text 的行运行 command 所表示的命令,这里的g可以改为指定行区间
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。