Vim 技巧 - 以 g 开头的命令
我们前面已经学过很多以 g
开头的命令了,比如 gg
,ge
,gj
及 gk
等
这里我们详细学习一下
g
(参见:h g)实际上是作为普通命令的补充,可能有些命令前期设计考虑不周,就使用 g + 普通命令
扩展一下,在某些情况下,要比普通命令更强一些
# 增强
# g + ^/0/$/j/k
普通命令是按真实行来跳转的,而增强命令是按视觉行跳转的。当一行没有换行时,两个命令效果是一样的
以 gj
为例:比如当前行为第 2 行,当换行后,j
命令会跳转到真实的下一行,即第 3 行,而 gj
会跳转到该行的换行行,实际上还是在第 2 行
# g + _
是 $
的增强,跳转到行尾,不包含尾随空格;当换行后,是跳转到换行行的行首
由于上面已经有 g$
了,故只能使用 g_
_
是跳转到行首,但不包括空格
# g + #/*
#/*
命令默认是全字匹配的,但不区分大小写 (默认,可通过 vim.ignorecase: false
设置为区分大小写)
当我们想匹配只要包含当前单词的字符时,就可以使用 g + #/*
# g + n/N
n/N
只是跳转到下/上一个匹配字符处,而 g + n/N
不仅会跳转,还会进入 visual
,选中匹配字符,再使用时,会从当前位置选中到下一个匹配处
# g + I
回到行首,包括空格
I
是回到行首第一个非空格的位置
# g + J
合并两行,中间不加空格
默认的 J
会加一个空格
# g + v
重新选中上次选择的字符
# g + p/P
在光标之后/前放置文本,光标留在插入文本之后
# 移动
# g + i
回到上次编辑的地方,并进入插入模式
# g + ;/,
Vim 为每次修改都记录了行号与列号,我们可以用 g;
和 g,
命令反向或正向遍历改变列表。
# g + e/E
跳转到上个单词/字符的词尾
# g + t/T
切换到下一个/上一个页签
# g + f
当光标下有字符或已选择部分字符,当通过该字符能找到对应的文件,则打开该文件,否则创建该文件
比如当光标在 test.txt
的任意字符上或使用 visual
选择以后,如果存在 test.txt
文件,就打开,否则创建 test.txt
文件
注意:使用 V
选择一行时,gf
无效
如无字符,则弹出选择文件的窗口
# g + g/o
跳转到文件头部
目前测试 go
也是跳转到文件头部
# g + d
跳转到定义处
# g + x
打开光标下的链接
# g + m
跳转到当前行中间位置
# 其它
# g + u/U/~
切换大小写
# g + h
悬浮显示详情
# g + a
输出光标下字符的 ascii
# g + ?
使用 Rot13
编码解码
g??/g?g?
编码解码一行