Android中vim编辑器进阶的使用介绍
本文导语: 1. 移动指令 (1). h j k l, 方向键,记忆技巧:左右方向的是最左边和最右边的,j向下打了个勾,所以是向下键,剩下的k就是向上的键了。 (2). b, before,上一个单词(词首) w, word,下一个单词(词首) ...
1. 移动指令
(1). h j k l, 方向键,记忆技巧:左右方向的是最左边和最右边的,j向下打了个勾,所以是向下键,剩下的k就是向上的键了。
(2). b, before,上一个单词(词首)
w, word,下一个单词(词首)
e, end,下一个单词(词尾)
注意这些小写的命令由字母,点,数字,下划线划分,还有这三个对应的大写字母的命令,B,W,E,类似的意思,但是是以空格区分移动的。总而言之,大写的移动范围要大。
(3). gg 首行
G 尾行,这两个命令用的较多
(4). n% 跳到n%的那行
(5). ^/0 到行首,我有时特别喜欢0,非常清晰简明的命令
$ 到行尾
(6). - 非空白行首向上移动
+ 非空白行首向下移动
(7). 行移动
nj //向下移动n行
nk //向上移动n行
nh //向左移动n列
nl //向有移动n列
n_ //向下移动n-1行,并光标移动到非空白行首
n- //向上移动n行,并光标移动到非空白行首
(8).通过查找字符移动
fx/Fx //向后/前查找字符x,行内跳转很有用
tx/Tx //向后/前查找字符x
//fx/Fx和tx/Tx的区别是用f光标停留在x上,用t光标停留在x的前面一个上
; //执行上次的fFtT
, //反方向执行fFtT,这两个有意思
2. 插入,替换,删除
(1). 学会a和i混用,不要只会用i进入插入模式,有时a进入插入模式后更方便,比如插入键盘右边的字母符号,用a的话,左右手配合起来效率更高。
(2). 学会I和A,快速进入行首和行尾插入模式,特定时刻用起来超爽!
这个很好理解,小写的i是光标前,大小的I是整行前面,o/O类似,画面很清晰。
(3). 学会o和O混用,不要只会用o进入下行编辑:
(3.1). 进入上行编辑,大写的O更快,而不是ko,双手比单手要快!
(3.2). 第一行前面想插入一行时,O比其他任何操作更直接和快速(不要先回到开头+回车)
(4). r 快速替换字符,最大的好处是不许要切换模式,节省了大量时间,非常有用!(R,这个命令我用的少,有的时候用的特别混乱,就不说了)
s 删除光标后一个字符并进入插入模式。该命令提供了r命令+进入插入模式的快速实现方法。
(5). c 这个命令很强大,归类说明一下
cm //m指的是前面的移动命令,类似的有dm,ym,g?m,gum,gUm
//改变内容(m定义了改变范围)并进入插入模式,这里说的改变就是删除,举例说明:
cw //删除光标后一个单词并进入插入模式
cl //删除光标后一个字母并进入插入模式
(6). cc和S 修改当前行,意思是删除该行所有字符内容,但保留行首空格
D和C 删除该行光标后所有内容,无论字符还是空格,这个命令我用的很多:代码审核格式化代码时,删除空行的空格和行尾空格。
(7). 学会结合t这个命令
t //till的意思,这是我最喜欢的命令之一
dt" //行内删除直到","不删除
ct) //行内改变直到),)不删除
... ...
(8). 学会x和X混用,分别是向前删除和向后删除字符
(9). :rd 删除第r行
3.查找
# //向下一个查找结果
* //向下一个查找结果
//在#/*之后按n/N可以重复/反向重复它们的命令
//下面这两个命令在编程时,很有用
gd //跳转到光标变量的定义位置(局部变量)
gD //跳转到光标变量的定义位置(全局变量)
4. 撤销和恢复
u //撤销
ctrl + r //恢复
5. 滚动
ctrl + e/y //向下/上一行一行的滚动
ctrl + d/u //向下/上半页半页的滚动
ctrl + f/b //向下/上一页一页的滚动
6. 可视模式(选择块)
可视模式其实非常有用,它的选择很灵活,而且视觉效果上看着和鼠标选择一样,学习成本低,但是功能强大。
(1). v 进入可视模式
(2). shift + v 也就是大写的V,可视模式的行选择,整行整行的选择,用于刚好整行或者大篇幅内容的处理比较方便。
(3). ctrl + v 可视模式的列选择,比行选择模式更加细化,可选择连续的列进入操作
选择块模式需要和其他命令结合:
V + G //选择当前行一直到文本结尾
V + G + d //删除当前行一直到文本结尾
V + G + y //复制当前行一直到文本结尾
V + gg + d //删除当前行一直到文本开头
V + gg + y //复制当前行一直到文本开头
ctrl+v + + d //删除选择的列
ctrl+v + + y //复制选择的列
(4). gv 选中上次的选中区域
(5). 选中单词,句子,段落:
vaw //选中一个单词(word)
vas //选中一个句子(sentence)
vap //选中一个段落(paragraph)
viw //选中一个单词(word)
vis //选中一个句子(sentence)
vip //选中一个段落(paragraph)
(6). 选中括号:
vab //选择()里面的内容, 包括小括号
vaB //选择{}里面的内容,包括大括号
7.执行shell命令
//记住这两种用法,你尝到它们的甜头的
:sh //打开shell,可执行shell命令,输入exit退出shell返回到vim
:!cmd //直接执行shell
比如上篇文章中提到的自动化打包脚本,我修改了代码后,需要执行一下这个脚本编译一下,但是我还不想完全退出vim,因为我还需要继续修改,就可以使用
:sh //打开一个终端
./build.sh //执行build.sh
exit //退出终端,继续vim编辑
//或者
:!./build.sh //在vim窗口直接执行build.sh脚本,然后按Enter或其他命令继续
是不是很方便!
8. 专题一:快速选中、删除、复制、修改引号或括号内的内容
//以下操作一定要熟记,能大大提高你编辑文本的效率
ci'、ci”、ci(、ci[、ci{、ci