vim 基本命令整理

VIM 基本命令

离开 vi
ZZ :wq :x 先存档再离开
:w     档名 存成他档
:q     离开 (档案有改会提示)
:q!     放弃编辑,直接离开
:wq!    强制存档,并离开
暂时离开 vi
:!      暂时执行一下UNIX指令
:sh     产生新shell, Ctrl + d 回原编辑处
Ctrl + z  ​​ 回上一个shell, 用fg指令回vi
插入/命令模式的切换
ESC键  插入模式 --> 命令模式
在命令模式下的指令
a    在游标右边插入文字
i    在游标处插入文字
o    在游标下方增加新列
A    在游标那列末端插入文字
I    在游标那列开头插入文字
O     在游标上方增加新列
移动游标
k    往上移
j    往下移
h    往左移
l    往右移
^    移到列首
$    移到列尾
w    往右移一个字(word)
b    往左移一个字(word)
e    移到目前所在字(word)的最后字元
G    移到档尾
nG   移到第 n 列
:n    游标移到第 n 列
:$    游标移到最后一列
H    游标移到荧幕顶端
M    游标移到荧幕中间
L    游标移到荧幕底端
ctrl + d  游标向下卷半页
ctrl + u  游标向上卷半页
ctrl + f  游标向上卷一页
ctrl + b  游标向下卷一页
删除
ctrl + G  查询目前的游标位置 删除资料
x    删除游标所在字元(delete)
#x   从游标起,删 # 个字元
X    删除游标的前一字元(backspace)
#X   从游标起,往前删 # 个字元
dw   删一个字(word)
#dw   删 # 个字(word)
D    删字到列末
dd   整列删除
#dd   从游标列开始,删除 # 列
dG   从游标处删到档尾
剪切和复制
ndd   从游标处起n 列, 剪到暂存区
nyy   从游标处起n 列, 复制暂存区
p    将暂存区的内容贴到游标处
n,m co x  将n 到m 列的资料, 复制到x 列
n,m m x  将 n 到 m 列的资料, 移到 x 列
.,$ co x  将游标所在列到档尾的资料, 复制到x 列
查找和替代
/     字串搜寻
:set ic   搜寻时不考虑大小写
:set noic  搜寻时需考虑大小写
n    向下搜寻
N    向上搜寻
r    将游标所在换成另一字元
cw   取代一个字串
cc   取代一整列
:s    取代多个字串
:1,$s  /旧字串/新字串/g 1是第1列, $是最后一列, g是全档
例:下这段指令可以将档案中所有的a: b: ... z: 的字串改成*
   :1,$s/[a-z]:/*/g
合并 列/档案
J    合并两列
:r    档名将他档插在游标所在列之后
:nr  ​​ 档名将他档插在第n 列之后
回滚
u    取消前一命令(undo)
U    对这列的修改全取消
设置
:set nu  加上行号
:set nonu 不显示行号
原文地址:https://www.cnblogs.com/jeesezhang/p/3863236.html