vim 笔记 - Vim 实用技巧

2019/03/13 Vim

vim 实用技巧, 按照一个个技巧的方式来讲述如何使用 vim,其教学方法独特而有效,学习一门工具, 应该先学习怎么用,而非关心整个工具如何系统工作以及其所有功能,循序渐进才是王道。

像 vim 高手一样思考问题

目录

Vim 解决问题的方式

认识 . 命令

. 命令会重复上次修改

注: `.` 命令是一个微型的宏

不要自我重复

使用复合命令减少无关的移动

复合命令 等效长命令
C c$
s cl
S ^C
I ^i
A $a
o A<CR>
O ko

以退为进

使修改可重复 + 使移动可重复

执行 重复 回退

宁可重复超越一定次数, 也不要去慢慢数, 超过了可以回退, 并不浪费时间

查找并手动替换

* 命令可以查找与光标下单词相同的单词

认识 . 范式

. 范式: 一键移动, 一键修改

模式

停顿时请移开画笔

画家只花一小部分时间作画, 程序员也只花一小部分时间编写代码

把撤销单元切成块

进入插入模式-进行修改-<Esc> 是一次修改, 合理利用 <Esc> 按键, 将可撤销单元切成块

构造可重复的修改

daw 好过 d3l

用次数做简单的算术运算

num + 操作 可以重复执行多次

能够重复, 就别用次数

dwdw, 不要用 2dw

双剑合璧, 天下无敌

操作符 + 动作命令 = 操作

操作符 用途
c 修改
d 删除
y 复制到寄存器
g~ 反转大小写
gu 转换为小写
gU 转换为大写
> 增加缩进
< 减少缩进
= 自动缩进
! 使用外部程序过滤 {motion} 所跨越的行
荐: 使用自定义操作符与已有操作符协同工作

操作符待决模式: 按下操作符, 等待动作命令的状态, 是一个短暂瞬间

插入模式

插入模式中可及时更改错误

按键操作 用途
<C-h> 删除前一个字符
<C-w> 删除前一个单词
<C-u> 删除至行首

返回普通模式

按键操作 用途
<Esc> 切换到普通模式
<C-[> 切换到普通模式
<C-o> 切换到 插入-普通模式

插入-普通模式: 能让我们执行一次普通模式命令, 执行完毕立刻返回插入模式

不离开插入模式, 粘贴寄存器中的文本

<C-r>{register} 命令, 可以在插入模式粘贴寄存器中的内容, 使用 :register 查看寄存器中的内容

随时随地做运算

<C-r>= 访问表达式寄存器, 输入命令后, 敲一下 <CR> 即可将执行结果插入光标位置

用字符编码插入非常用字符

  • <C-v>{123} 以十进制字符编码插入字符
  • <C-v>u{1234} 以十六进制字符编码插入字符
  • <C-v>{nondigit} 按按键原义插入非数字字符
  • <C-k>{char1}{char2} 插入二合字母表示的字符

用二合字母插入非常用字符

  • <C-k>{char1}{char2} 插入二合字母表示的字符
  • :digraphs 查看二合字母列表
  • :h digraph-table 查看有序二合字母列表

用替换模式替换已有文本

  • r{char} 替换单个字符
  • R 进入替换模式
  • gR 进入虚拟替换模式

虚拟替换模式: 制表符将会以多个空格的形式存在

可视模式

深入理解可视模式

  • 可视模式并非传统的 “选择”
  • 可视模式与操作符相结合, 并使用 “选区” + “操作” 的方式, 而非普通模式的 “操作” + “动作” 的方式

选择模式: vim 提供传统意义上的选择模式, 参见 :h Select-mode, 使用 <C-g> 在可视模式和选择模式中进行转换, 这一模式用处不大

选择高亮选区

命令 用途
v 激活面向字符的可视模式
V 激活面向行的可视模式
<C-v> 激活面向列的可视模式
gv 重选上次的高亮选区

在可视模式中, 使用上述其他指令可以切换到相应的可视模式, 使用相同指令或 <Esc> 则退出可视模式, 使用 o 可切换高亮选区的活动端

重复执行面向行的可视命令

面向行的可视命令如 > < dd 等, 尽量使用 “命令” + “.” 的方式来执行, 而非盲目使用 R

只要可能, 最好用操作符命令而非可视命令

可视命令会有限定字符长度的陷阱, 如果需要重复执行, 最好不要使用可视模式

用面向列块的可视模式编辑表格数据

这是 vim 比其他编辑器强的一个点

修改列文本

高亮列选区, 此时同时按下操作符, 该操作符将对所有行同时生效, 如 a c

在长短不一的高亮块后添加文本

进入面向列的可视模式后, 按下 $ 即可同时到达行尾, 接着进行同时操作

vim 对 AI 都存在约定, 可以替代按下 $0 的操作

正在加载今日诗词....

Access Statistics

Table of Contents