最近开始接触Linux,用了Vim作为编辑器。用的不熟,所以总结一下,方便下次查阅。

什么是Vim

Vim是vi发展出来的一个文本编辑器。一般类Unix用户喜欢用这个。

Vim的模式

Vim有多种模式,比如插入模式、命令行模式等,仅仅通过控制键盘就能进行操作,增加了编写效率。

1.普通模式(Normal)

: 在普通模式中,用的是编辑器命令。这是Vim启动后的默认模式

命令解释
h,j,k,lh表示往左, j表示往下, k表示往右, l表示往上
Ctrl+f上一页
Ctrl+b下一页
Ctrl+u向文件首翻半屏
Ctrl+d向文件尾翻半屏
nz将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
w,e,W,E以一个单词单位往后跳。w,W:调到首部。e,E:调到尾部。小写包括标点
b, B以单词为单位往前跳(跳到首部),小写包括标点
$一行的结尾
gg文档的第一行
[N]G文档的第N行或最后一行
)光标移至句尾
(光标移至句首
}光标移至段落开头
{光标移至段落结尾
n+光标下移n行
n-光标上移n行
n$光标移至第n行尾
H光标移至屏幕顶行
M光标移至屏幕中间行
L光标移至屏幕最后行

2.插入模式(Insert)

: 我的理解这是一个编辑模式,相当于插入文本。

命令解释
i插入到光标前面
I插入到行开始的位置
a插入到光标的后面
A插入到行的最后位置
o(字母)开启新的一行
O(字母大写)在当前行之上新开一行
^,0(数字)一行的开始
r替换当前字符
R替换当前字符及其后的字符,直至按ESC键
s从当前光标位置处开始,以输入的文本替代指定数目的字符
S删除指定数目的行,并以所输入文本代替之
Esc关闭插入模式
: 如果在默认模式下使用以上的命令,会跳转到Insert模式,如果要退出,则使用Esc。
下方会显示是什么模式,默认模式时没有标注。

3可视模式

: 这个模式与普通模式比较相似,但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。我的理解是相当于批量处理。
激活方式:

v(小写)按字符选择文本
V(大写)按行选择文本
Ctrl+v按块选择
选择完可视区域,可以对其进行操作
操作解释
--------------
d删除选中文本
c修改选中文本
r替换选中文本
I在选中文本前插入
A在选中文本后插入
gu选中区域转为小写
gU选中区域转为大写
g~大小写互换

|向右缩进一个单位


还有一些其他的应用:

搜索解释
/target从光标开始处向文件尾搜索target内容,如果要跳到下一个关键字,按n(向后)/N(向前)
?target从光标开始处向文件首搜索
n在同一方向重复上一次搜索命令
N在反方向上重复上一次搜索命令
:s/p1/p2/g将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g将第n1至n2行中所有p1均用p2替代
:s/p1/p2/g把当前行中p1用p2替换
:%s/p1/p2/g把本文所有p1用p2替换

删除

操作解释
ndd删除当前行及其后n-1行,不写n时删除一行
dw删除一个单词
x或X删除一个字符,x删除光标后的,而X删除光标前的
D删除一行最后一个字符
ndw或ndW删除光标处开始及其后的n-1个字
do删至行首
d$删至行尾
剪切和复制解释
[N]yy复制一行或者N行
yw复制一个单词
p粘贴
u撤销
关闭Vim解释
:w保存
:wq, :x保存并关闭
:q关闭(已保存)
:q!强制关闭(不保存)

如果不小心按了Ctrl+C,这时候按任何命令都无效了,这是因为Ctrl+C命令在 Linux 下的作用是暂停该终端,阻止向该终端输出
解决方法:按Ctrl+Q命令就可以了,该命令作用是恢复向终端输出

更多推荐

Linux编辑器 Vim 介绍与使用