vim recipes

可视模式修改命令

v     -  面向字符的可视模式 
V     -  面向行的可视模式  
C-v   -  面向列块的可视模式  
gv    -  重写上次高亮选取  
o     -  切换高亮选取的活动端

gU{motion} / gu{motion}

有<a href='#'>one</a>这么一个字符串, 我们想吧one变成ONE, 或者想把ONE变成one  
gUit  one -> ONE  
guit  ONE -> one  
我们在执行guit时, vim处在命令模式下, 光标可处在a标签的任意位置

inside the tag

这里it的意思是inside the tag: 也就是在xml tag内部的文本对象  
再比如  
vit  - 是选择one  
vat  - 选择了<a></a>整个标签的所有内容
vi"  - 是选择双引号之内的东西"toselect"  
va"  - 选择"toselect" 包括了"
vi{  - 是选择大括号之内的东西{toselect}     

类似有:
va[ 
vi[
va>
vi>

此外:
%  -  {} () []的的光标跳转

viw  - 当前单词
viW  - 当前字符串

vaw  - 当前单词 + 空格
vaW  - 当前字符串 + 空格

vis  - 当前句子
vas  - 当前句子 + 空格

vip  - 当前段落
vap  - 当前段落 + 空格

移动光标

jkhl  - 上下左后  

基于单词的移动:  
w   -  移动到下一个单词的开头
b   -  移动到上一个单词开头
e   -  移动到下单词的末尾
ge  -  移动到上一个单词的末尾

行内光标移动
f{char}  -  正向查找
F{char}  -  反向查找
t{char}  -  正向
T{char}  -  反向
;        -  重复上一次
,        -  反向重复

光标跳转
mm  -  标记跳转点m
`m  -  跳转到m
mk  -  标记跳转点k
`k  -  跳转到k

编辑模式下的命令

C-h     - 退格
C-w     - 删除当前单词
C-u     - 删除到行首
C-r0    - 粘贴寄存器内容
C-r=    - 作运算

几个命令

c  - change : cw ciw  c$ c0
C  - 删除到行尾同时进入insert
r  - 改变单个字符,前后都在命令模式
R  - replace
>    -
>ip  - 整段
<    -
>>   -
<<   -
3>>  -
3<<  -

Published: November 06 2014