使用vim实现多光标功能
Table of Contents
在编写代码的过程中,我们经常会遇到“批量修改”的功能。vim中有多种方式可以批量操作。
1. virtual模式 #
原代码:
package main
type Op string
const (
Add Op = "add"
Sub Op = "sub"
Div Op = "div"
Mul Op = "mul"
)
如果我们要在变量名前增加其类型,如Add改为OpAdd,我们有多个变量名,这时可以进入virtual模式进行批量更改。
- ctrl+v进入virtual模式,按j进行多行选择
- shift+i进入插入模式,鼠标移动到第一行
- 增加两个字符Op
- 按Esc进行批量插入
2. gn #
gn能够快速操作搜索命中的字符串,这意味着在使用gn前需要先进行搜索。
gn命令通常和一些操作模式一起使用,比如cgn用于插入,dgn用于删除.
1. cgn #
原代码:
package main
type Op string
const (
Add = "add"
Sub = "sub"
Div = "div"
Mul = "mul"
)
我们要为每个变量增加变量名,如Add = "add"
要改为Add Op = "add"
这时可以使用cgn来实现:
- 使用
/=
来搜索=
- 使用
cgn
进入插入模式 - 将
=
替换为Op =
- 按
Esc
退出插入模式 - 按
n
跳转到下一个匹配字符串,然后按点.
进行替换(重复按.
可以直接替换下一个)
如果想要跳过某个不想替换的单词,可以使用n
进行跳过。
2. dgn #
可以使用dgn进行快速删除多个:
3. lsp #
说到批量修改,我们常用的是对某个变量重命名,这其实是用到了lsp,比如go用的是gopls。