Vim 常用快捷键速查

一、gf 快捷键说明

gf(goto file)用于在普通模式下,跳转到光标所在位置的文件名对应的文件。

使用场景:

  • 脚本中 include / source 的文件

  • 日志、Makefile、Tcl、Verilog 中的文件路径

如何退出 / 返回:

  1. :q 关闭当前打开的文件(最常用)

  2. :bd 关闭当前 buffer,返回之前文件

  3. Ctrl+o 跳回跳转前的位置(推荐)

  4. Ctrl+i 向前跳转(与 Ctrl+o 成对)

二、文件与窗口相关快捷键

:e file 打开文件

:w 保存

:q 退出

:wq / :x 保存并退出

:qa 退出所有窗口

:sp 水平分屏

:vsp 垂直分屏

Ctrl+w h/j/k/l 在窗口间切换

Ctrl+w c 关闭当前窗口

Ctrl+w o 只保留当前窗口

三、光标移动快捷键

h j k l 左 下 上 右

w / b 按单词前进 / 后退

0 / ^ 行首 / 行首非空

$ 行尾

gg 文件开头

G 文件结尾

Ctrl+u / Ctrl+d 上翻 / 下翻半页

四、编辑相关快捷键

i 光标前插入

a 光标后插入

o / O 下 / 上插入新行

dd 删除整行

yy 复制整行

p / P 粘贴

u 撤销

Ctrl+r 重做

五、查找与替换

/pattern 向下查找

?pattern 向上查找

n / N 下一个 / 上一个

:%s/a/b/g 全文替换

:noh 取消高亮

六、代码与效率技巧(常用)

% 括号/if-end 对应跳转

>> / << 缩进 / 反缩进

v / V 可视模式(字符 / 行)

ciw 修改当前单词

diw 删除当前单词

K 查看关键字帮助(如 man / Tcl / Verilog)

七、强烈推荐记住的跳转相关快捷键

gf 跳转到文件

Ctrl+o 回到上一次位置(跳转返回神器)

Ctrl+i 向前跳转

'' 回到上一次编辑行

必须形成肌肉记忆的核心快捷键

gf 跳转到光标下的文件(source/include/report)

Ctrl+o 跳回上一个位置(跳转返回神器)

Ctrl+i 向前跳转

% if-end / begin-end / () {} 对应跳转

gd 跳转到局部定义(Verilog/Tcl 变量)

Tcl / Flow 脚本阅读与修改技巧

1)快速定位变量和命令

/set\s\+var 查找变量定义

/proc 查找过程定义

n / N 下一个 / 上一个

2)批量修改(flow 常用)

:%s/old/new/g 全文替换

:10,50s/a/b/g 指定行范围替换

3)高效编辑

ciw 修改当前变量名

diw 删除当前变量

va{ 选中整个 if/foreach 块

Verilog / RTL 阅读技巧(偏后端)

gf 跳转到 include 的 .v/.sv 文件

% begin-end / if-else 对应

/module 查找模块

/endmodule 快速定位模块结束

]] / [[ 模块级前进 / 后退

ci( 修改端口列表内容

STA / APR Log & Report 阅读技巧(重点)

1)快速跳 error / warning

/ERROR

/Error

/VIOLATION

/Slack

2)固定关键词快速跳转

:set hlsearch

:noh 取消高亮

设行号

:set nu

:set nonu

相关推荐
童话ing14 小时前
【Shell】自动替换指定项目tag并提merge request
shell
岚天start2 天前
[K8S监控]-K8S容器pod异常状态监控脚本并推送钉钉告警
容器·kubernetes·钉钉·shell·告警
AlbertS5 天前
Shell脚本中set -e和set -o pipefail的作用
shell·pipefail·trap·脚本错误·控制流程
阿海5745 天前
安装php7.4.33的shell脚本
php·shell
阿海5746 天前
卸载redis7.2.4的shell脚本
linux·redis·shell
小嘟嘟136 天前
从基础到进阶:掌握 userdel,玩转 Linux 用户管理的 “减法” 艺术
linux·运维·网络·shell
gis分享者7 天前
如何在 Shell 脚本中实现文件的读写操作?(容易)
shell·文件·awk·echo·cat··
eight *7 天前
源码部署docker自动化脚本
docker·shell
gis分享者8 天前
如何在 Shell 脚本中使用管道(pipeline)实现数据传递?(容易)
linux·pipeline·shell·脚本·管道·数据传递