Vim
发布: (2025年12月27日 GMT+8 20:57)
3 min read
原文: Dev.to
Source: Dev.to
1. 匹配光标所在单词的所有出现位置
*
2. 用另一个单词替换当前单词
:%s/word/newword/gc
g – 全局,c – 确认
3. 可视化选择一个单词(i / a – 内部 / 外部)
viw " selects only the word itself
vaw " selects the word plus surrounding whitespace
vi( " visual text inside ()
ci" " change inside double quotes
va( " visual around ()
va" " visual around double quotes
4. 显示所有寄存器
:reg
5. 从指定寄存器粘贴
"p
6. 将当前行复制到系统剪贴板(+ – 剪贴板寄存器)
"+yy
7. 将当前文件名复制到系统剪贴板
:let @+=@%
将 % 寄存器(当前文件名)的内容赋给 + 寄存器(系统剪贴板)。
8. 复制当前文件的绝对路径
:let @+ = expand('%:p')
9. 录制并播放宏
qq " start recording, perform actions, stop
@h " replay macro stored in register h
10. 在可视选择中使用 :normal 模式
当你在可视模式下选中行并按 : 时会得到:
:'
随后可以对每一行执行普通模式命令:
:'normal
常用键
I– 跳到每行开头并进入插入模式A– 跳到每行结尾并追加文本
示例 – 在每行前面添加 var
hello
world
goodbye
:'normal Ivar␣
结果
var hello
var world
var goodbye
示例 – 在每行后面追加 ;
hello
world
goodbye
:'normal A␣;
结果
hello ;
world ;
goodbye ;


11. 增减数字
Ctrl‑a– 增加光标所在的数字Ctrl‑x– 减少光标所在的数字
value = 2
选中所有行,按 g 再 Ctrl‑a 可对每个数字递增:
list.get(0);
list.get(0);
list.get(0);
list.get(0);
list.get(0);
list.get(0);
执行 gCtrl‑a 后:
list.get(1);
list.get(2);
list.get(3);
list.get(4);
list.get(5);
list.get(6);
12. 切换选择方向
o– 切换到选择的另一端(向前)O– 切换到选择的另一端(向后)
13. 使用 w / W 的单词移动
w– 移动到下一个单词的起始位置(字母、数字或下划线)W– 移动到下一个以空白分隔的单词的起始位置
Lis:st.get(0) hello world