Vim实用技巧——持续更新
普通模式
- u undo
reundo
操作符+动作命令=操作
操作符单独不可用,像c(change)、d(delete)、y(复制),:h operator可以查看所有的有限操作符;: h :map-operator查看如何自定义操作符
- C重写当前位置到行尾,=c$
- D删除当前到行尾,=d$
- y有点不同,Y=yy复制整行
- cb/db/yb改变删除或复制当前单词到光标处前
- caw/daw/yaw替换删除或复制光标所在单词+后边的空格
- cc 重写当前行
- dd删除当前行
-guaw/gUaw/g~aw改变当前单词的大小写(全部变)
复合命令
- A=$a
- I=^i
- S重写当前行,=cc=^C
- s当前字符替换成一个字符串,=cl
- .重复上次修改(微型宏)
宏
- qx{operations}q录制宏
- @x进行宏的执行(.不能重复宏的执行,只能重复最近的一次修改)
插入模式
删除前一个单词 删除至行首 - <c-[>切换到正常模式,代替esc
切换到正常模式执行后返回 复制寄存器的内容 =计算的值插入当前光标处
替换模式
- R,或者Insert键
可视模式
V/
gv选中上次的区域
o切换高亮选区的活动端
场景
- 查找/替换
f/F单行查找
- ;顺着方向查
- ,逆着方向查
/string全局查找,或:/string - n/N
全局替换
:%s/olds/news/g
手动遍历替换(完整匹配单词)
> *(完整匹配光标所在单词)
> 选择性的cw
> n
> .
- 若干行尾部加同样的东西,如;
> $
> c-v
> 移动来选中行(eg.5j)
> A
> ;
> esc
同样的行首加
> ^;c-v;移动来选中行;I;<head>;esc;
- 调整代码格式
>/</=缩进(操作符)
>>/<</==缩进当前行
>G/<G/=G缩进当前行到尾行
- 拼接字符串的‘+’变为‘ + ’
> f
> +
> s
> space + space esc
> **;**
> .
> ;.
- 注释
安装commentary.vim 插件,提供了gc操作符
gcc注释当前行
gcG
gcap
- 数字运算
/ 对当前光标下或其后的第一个数字执行减减或加加 - 5
/ = -5/+5 - Insert mode
=插入运算结果到当前位置
- 写作
- zz调整当前行到屏幕中央,c-o zz
- 划线
- 横线
> yyp
> Vr-
- 竖线
> <c-v>9j
> r|
作为ide
除了基本的会计键外,可以通过修改vim的配置文件实现编译运行程序(在 VimScript 中函数名必须以大写字母开头,否则 Vim 将提示错误;exec 关键字之后的都会在Vim 的命令模式下执行)