GVIM基础用法的三种工作模式

电子说

1.2w人已加入

描述

作者|清洬

GVIM基础用法图解

01:三种工作模式

令模式(默认模式,进入GVIM即为该模式)

入模式(在该模式下才能接收键盘输入的字符)

底行模式(该模式下进行退出、保存、配置文件)

三种模式之间的切换

Gvim

三种模式的切换▲

如上图所示,由命令模式进入输入模式时,可以使用i/I,a/A,o/O等键;由输入模式回退到命令模式按Esc键;由命令模式进入底行模式要按:(冒号),由底行模式回退到命令模式按回车或者删除底行的命令。

输入模式进入底行模式必须经过命令模式进行中转。

Gvim

命令模式▲

Gvim

输入模式▲

Gvim

底行模式▲

02:命令模式操作

2.1 光标的移动

h(←):光标向左移动一个字符

j(↓):光标向下移动一个字符

k(↑):光标向上移动一个字符

l(→):光标向右移动一个字符

 :光标移动到非空格符的下一行

 :光标移动到非空格符的上一行

num+移位键:光标会朝移位方向移动n次

M:光标移动到屏幕的中央那一行的第一个字符

gg:光标移动到文件第一行第一个字符

G:光标移动到文件最后一行第一个字符

Home(g0):光标移动到当前行行首

End(g$):光标移动到当前行行尾

num+G/H:光标跳到文件的第n行(好用)==ngg

b:移动光标在某行首位

e:移动光标在某行末尾

zt:将当前行位置变成屏幕的顶端

zz:将当前行位置变成屏幕的中部

zb:将当前行位置变成屏幕的底部

H:把光标移动到屏幕最顶端一行

M:把光标移动到屏幕中间一行

L:把光标移动到屏幕最底端一行

2.2 复制字符

y2w:复制两个字符(从光标所在位置开始)

yy:复制某行全部字符

2yy:复制两行全部字符

y0:复制光标所在的字符到该行行首的所有数据

y$:复制光标所在的字符到该行行尾的所有数据

yG:复制光标所在行到最后一行的所有数据

y1G:复制光标所在行到第一行的所有数据

命令效果见下图:(第二行为复制效果)

Gvim

y2w

Gvim

yy

Gvim

2yy

Gvim

y0

Gvim

y$

yGy1G不再演示,可自行尝试

2.3 粘贴/剪切字符

p(小写):在光标位置之后粘贴

P(大写):在光标位置之前粘贴

v+方向键(hjkl)+x(剪切)+p(粘贴):剪切内容

x:剪切光标所在位置处字符

2.4 删除字符

x:删除光标所在位置处的字符

s:删除光标所在位置处的字符,并进入输入模式

S:删除光标所在的行,并进入输入模式

dd:删除光标所在行的全部内容

cc:删除效果同dd,只是删除后会进入输入模式

cw:删除光标处到单词结尾的文本并进入输入模式

cb:删除光标处到单词开头的文本并进入输入模式

J:删除光标所在位置的换行符

d$:删除光标所在某行位置以及后面的所有值

c$:删除光标所在某行位置以及后面的所有值并进入输入模式

2.5 替换字符

r:按“r”之后,输入要替换的字符即可

R:可替换多个字符,ESC退出

2.6 恢复删除的字符

u:恢复刚才删除的内容(也可在底行模式下输入“put”),恢复的次数可以在启动配置中设置。

Gvim

2.7 进入到输入模式

i:将内容插入到光标所在字符前面

I:将内容插入到光标所在行前面

a:将内容插入到光标所在字符后面

A:将内容插入到光标所在行后面

o:将内容插入光标所在行一行

O:将内容插入到光标所在行一行

2.8 保存

ZZ:保存退出

ZQ:不保存退出

2.9 列操作

v:字符选择,光标移动来选择范围

V:行选择,通过上下移动光标选择行

ctrl+v/q:矩形区域选择(进入列操作模式)

03:输入模式操作

该模式就是正常的输入文字,和你用word是一样一样的。。。。。进入到该模式的方法参见part02的2.7小节

ctrl+n:可自动补全历史输入过的字符

04:底行模式操作

命令模式下输入:(冒号)进入该模式。可在该模式下进行命令输入,进而对文本进行操作、修改、保存等。下面列出一些常见的命令。

4.1 退出

:q  退出

:q! 强制退出

:wq 保存退出(与命令模式下的ZZ一样)   

:x 保存退出

:e! 放弃所有修改并重新载入该文件的原始内容

4.2 查找

/string  正向查找

?string  反向查找

4.3 替换

:s/old/new 将当前行的第一个字符串old替换为new

:s/old/new/g 将当前行的所有字符串old替换为new

:90s/old/new/g将指定行的所有字符串old替换为new

:90,93s/old/new/g将指定范围的行的所有字符串old替换为new

:%s/old/new/g    将文本中所有的字符串old替换为new

:%s/old/new/gc 依次替换每个字符串关键字

:%s/^struct/int/g 将所有以struct开头的字符串替换为int

底行模式下的一些列操作涉及到GVIM中的正则表达式

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分