2025-04-04 17:35:35 +08:00
|
|
|
# vim小技巧
|
|
|
|
`.` 重复上一个操作
|
|
|
|
|
|
|
|
## 目录
|
2025-05-09 18:07:44 +08:00
|
|
|
- [录制宏](#录制宏)
|
|
|
|
- [打开终端](#打开终端)
|
|
|
|
- [快捷键](#快捷键)
|
|
|
|
- [移动](#移动)
|
|
|
|
- [插入](#插入)
|
|
|
|
- [修改](#修改)
|
|
|
|
- [删除](#删除)
|
|
|
|
- [复制](#复制)
|
|
|
|
- [基本补全](#基本补全)
|
|
|
|
- [补全菜单](#补全菜单)
|
|
|
|
- [vimrc](#./.vimrc)
|
2025-04-04 17:35:35 +08:00
|
|
|
|
|
|
|
## 录制宏
|
|
|
|
使用 q[Key] 开始录制宏,再次点击q结束录制
|
|
|
|
@[Key] 调用宏
|
|
|
|
@@ 重复调用
|
|
|
|
|
|
|
|
## 打开终端
|
|
|
|
`:term`或`:vert term`
|
|
|
|
从终端转到普通模式:`<c-\>+<c-n>`
|
|
|
|
|
|
|
|
## 快捷键
|
|
|
|
### 移动
|
|
|
|
+ 0 gm 行首行尾
|
|
|
|
+ ngg 移动到第n行
|
|
|
|
+ fc tc 搜索字符 ; , 可重复
|
|
|
|
+ c-u 上半屏
|
|
|
|
+ c-d 下半屏
|
|
|
|
+ Shift-[ 跳转到上一个空行
|
|
|
|
+ * 移动到下一个与当前指针下相同单词的位置
|
|
|
|
+ # 移动到上一个与当前指针下相同单词的位置
|
|
|
|
+ Ctrl + ] 跳转到标签,依赖于tags文件
|
|
|
|
+ `ctags -R .` 创建目录下的跳转文件
|
|
|
|
+ Vim 会记录跳转历史,使用 Ctrl + T 或 Ctrl + O 返回到上一个位置
|
|
|
|
+ gf 跳转到文件路径
|
|
|
|
+ `c-o` 后退一步
|
|
|
|
+ `c-i` 前进一步
|
|
|
|
+ `[a-z] / `[A-Z] 跳转到标记位置 大写全局,小写本文件,用m[a-z]设置标记
|
|
|
|
+ ` 上次跳转的位置
|
|
|
|
+ . 最后一次修改的位置
|
|
|
|
|
|
|
|
### 插入
|
|
|
|
+ I A 行首 行末 插入
|
|
|
|
+ n<< n>> 多行左右移动
|
|
|
|
|
|
|
|
## 修改
|
|
|
|
+ r R 替换光标下的字符
|
|
|
|
+ c-i-( 替换括号内的内容可以使用任何括号匹配
|
|
|
|
|
|
|
|
### 删除
|
|
|
|
+ x 删除光标下字符
|
|
|
|
+ J 与下一行合并
|
|
|
|
+ Shift-d 从当前字符删除到行末
|
|
|
|
|
|
|
|
### 复制
|
|
|
|
+ "x 使用寄存器x进行下一次复制 粘贴 删除
|
|
|
|
:reg 显示所有寄存器
|
|
|
|
|
|
|
|
### 可视模式
|
|
|
|
+ o
|
|
|
|
交换选择区域另一端和光标的位置
|
|
|
|
+ aw as ap ab aB
|
|
|
|
选择一个单词 句子 段落 () {}
|
|
|
|
+ vi{
|
|
|
|
选中一整个大括号内
|
|
|
|
+ va{
|
|
|
|
选中一整个大括号全部
|
|
|
|
+ ]f
|
|
|
|
在文件中若出现文件名,指针放在上面使用这个快捷键可直接打开
|
|
|
|
|
|
|
|
## 基本补全
|
|
|
|
1. Ctrl+n - 普通关键字补全(向下浏览)
|
|
|
|
- 在当前文件和包含文件中查找匹配项
|
|
|
|
- 适用于变量名、函数名等
|
|
|
|
2. Ctrl+p - 普通关键字补全(向上浏览)
|
|
|
|
- 与 Ctrl+n 相同,只是方向相反
|
|
|
|
3. Ctrl+x Ctrl+f - 文件名补全
|
|
|
|
- 在输入路径时自动补全文件名
|
|
|
|
4. Ctrl+x Ctrl+l - 整行补全
|
|
|
|
- 补全整行代码(从当前文件中查找相似行)
|
|
|
|
|
|
|
|
### 补全菜单
|
|
|
|
1. `c-n``c-p` 上下移动
|
|
|
|
2. `c-y` 确认
|
|
|
|
3. `c-e` 退出
|