vim 编辑器_快捷键

236 阅读2分钟

VIM

光标移动

h, j, k, l

Ctrl+f=上翻页

Ctrl+b=下翻页

%=跳到匹配的括号

w=跳到单词(标点)开头

W=跳到单词开头

e=跳到单词(标点)结尾

E=跳到单词结尾

b=与w反向(往前跳跃)

B=与W反向(往前跳跃)

0=行首

^=行第一个字符

$=行尾

gg=到达第一行

gd=到达光标所在的函数或变量的定义

[N]G=到达第N行或行尾

fx=移动光标到本行下一个出现字符x的位置

;=重复上一个f命令

tx=类似fx,移动到本行下一个x字符之前的位置

Fx=与fx方向相反

),(=移动光标到下一句,上一句

*=读取游标当前单词,并到达下一个出现处

#=方向与*相反

`.=到达上一个编辑处

屏幕范围

H=移动光标到当前屏幕第一行首

M=移动光标到当前屏幕中间行首

L=移动光标到当前屏幕最后一行行首

书签

ma=在当前光标位置添加书签a

`a=到达书签a

剪切粘贴

dd=删除当前行

dw=删除当前单词

x=删除当前字符

X=删除前一个字符

D=删除到行尾

yy=复制当前行

2yy=复制当前行开始的2行

yw=复制当前单词

y$=复制到行尾

p=粘贴到 当前光标/当前行 之后

P=粘贴到 当前光标/当前行 之前

]p=以适当的缩进粘贴

"a=用注册符a命名下一个复制或粘贴操作

插入模式

i=在光标位置插入

I=在行首插入

a=在光标后插入

A=在行尾插入

o=在光标下方插入一行

O=在光标上方插入一行

Esc=退出插入模式

自动补全(写几个字符然后)

Ctrl-n=下一个自动补全

Ctrl-p=上一个自动补全

编辑

r=替换单个字符(非插入模式)

J=将下一行连接到本行末尾

cc=修改整行

cw=修改单词到结尾

c$=修改到行尾

s=删除当前光标的字符并且插入文本

S=删除光标所在行并插入文本

xp=互换光标和其后的字符位置

ddp=互换光标所在行与其下一行

yyp=创建前行的复本

u=撤销

Ctrl-r=恢复

.=重复最近的命令

~=变换字符大小写

g~iw=变换当前单词的大小写

gUiw=当前单词大写

guiw=当前单词小写

>>=向右缩进(shiftwidth)

<<=向左缩进

===自动缩进

视图模式

标记文本

v=开启视图模式

V=开启行视图模式

Ctrl-v=开启块视图模式

o=移动到标记区块的对角

O=移动到标记区块另一个角(同一行的另一个角)

aw=标记一个单词

ab=标记()的内容

aB=标记{}的内容

ib=标记()内的内容

iB=标记{}内的内容

命令

>=向右移动

<=向左移动

y=复制

d=删除

~=转换大小写

查找替换

/pattern=查找pattern

?pattern=向前查找pattern

n=当前方向重复查找

N=反方向重复查找

:%s/old/new/g=全局用new替换old

:%s/old/new/gc=全局用new替换old,并逐个确认

:n1,n2/old/new/g=n1行到n2行用new替换old

:1,$s/new/old/g=第一行到最后一行用new替换old

:%s:old:new:g=另一种替换方法

退出

:w=保存

:wq=保存退出

:x=保存退出

:q=退出,但未保存会失败

:q!=强制退出

ZZ=若无改动,直接退出;若有改动,保存后退出

:w !sudo tee %=用sudo强制保存

:! command=不退出VIM,在Bash中执行command命令

多文件编辑

:e filename=在新buffer中编辑filename

:bn=下一个buffer

:bd=删除buffer(关闭文件)

:sp fn=在新buffer打开fn文件并水平分隔窗口

:vs fn=在新buffer中打开fn并垂直分隔窗口

Ctrl-w=窗口命令

Ctrl-w s=水平分隔窗口

Ctrl-w w=切换窗口

Ctrl-w q=退出窗口

Ctrl-w v=垂直分隔窗口

Ctrl-w h,j,k,l=上下左右进入窗口

Tab命令

:tabe fn=在新tab中编辑fn文件

gt=下一个tab

gT=上一个Tab

:tabr=第一个Tab

:tabl=最后一个Tab

:tabm[N]=移动当前tab到第N个tab之后

qa=用注册符a开始录制一个宏

q=结束录制

@a=回放注册符a的宏