Henry Henry
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)

Henry

小学生中的前端大佬
  • JavaScript
  • TypeScript
  • Vue
  • ElementUI
  • React
  • HTML
  • CSS
  • 技术文档
  • GitHub 技巧
  • Nodejs
  • Chrome
  • VSCode
  • Other
  • Mac
  • Windows
  • Linux
  • Vim
  • VSCode
  • Chrome
  • iTerm
  • Mac
  • Obsidian
  • lazygit
  • Vim 技巧
  • 分类
  • 标签
  • 归档
  • 网站
  • 资源
  • Vue 资源
GitHub (opens new window)
  • 说明
  • Vim

  • VSCode

  • Chrome

  • iTerm

  • mac

  • Obsidian

  • lazygit

  • 学习双拼
  • Vim 技巧

    • Vim 技巧 - 说明
    • Vim 技巧 - 以退为进
    • Vim 技巧 - 点范式
    • Vim 技巧 - 把撤销单元切成块
    • Vim 技巧 - 构造可重复的修改
    • Vim 技巧 - 用次数做简单的算术运算
    • Vim 技巧 - 能够重复,就别用次数
    • Vim 技巧 - 在插入模式中可即时更正错误
    • Vim 技巧 - 结识插入 - 普通模式
    • Vim 技巧 - 不离开插入模式,粘贴寄存器中的文本
    • Vim 技巧 - 重复执行面向行的可视命令
    • Vim 技巧 - 只要可能,最好用操作符命令,而不是可视命令
    • Vim 技巧 - 结识 Vim 的命令行模式
    • Vim 技巧 - 在一行或多个连续行上执行命令
    • Vim 技巧 - 使用‘:t’和‘:m’命令复制和移动行
    • Vim 技巧 - 在指定范围上执行普通模式命令
    • Vim 技巧 - 重复上次的 Ex 命令
    • Vim 技巧 - 把当前单词插入到命令行
    • Vim 技巧 - 回溯历史命令
    • Vim 技巧 - 运行 Shell 命令
    • Vim 技巧 - 将工作区切分成窗
    • Vim 技巧 - 区分实际行与屏幕行
    • Vim 技巧 - 通过查找进行移动
    • Vim 技巧 - 遍历改变列表
    • Vim 技巧 - 用无名寄存器实现删除、复制与粘贴操作
    • Vim 技巧 - 深入理解 Vim 寄存器
    • Vim 技巧 - 用寄存器中的内容替换高亮选区的文本
    • Vim 技巧 - 把寄存器的内容粘贴出来
    • Vim 技巧 - 宏的读取与执行
    • Vim 技巧 - 规范光标位置、直达目标以及中止宏
    • Vim 技巧 - 加次数回放宏
    • Vim 技巧 - 在连续的文本行上重复修改
    • Vim 技巧 - 给宏追加命令
    • Vim 技巧 - 编辑宏的内容
    • Vim 技巧 - 调整查找模式的大小写敏感性
    • Vim 技巧 - 查找使用 v 或 V 模式
    • Vim 技巧 - 界定单词的边界
    • Vim 技巧 - 转义问题字符
    • Vim 技巧 - 结识查找命令
    • Vim 技巧 - 在执行查找前预览第一处匹配
    • Vim 技巧 - 将光标偏移到查找匹配的结尾
    • Vim 技巧 - 利用查找历史,迭代完成复杂的模式
    • Vim 技巧 - 结识 substitute 命令
    • Vim 技巧 - 在文件范围内查找并替换每一处匹配
    • Vim 技巧 - 手动控制每一次替换操作
    • Vim 技巧 - 重用上次的查找模式
    • Vim 技巧 - 用寄存器的内容替换
    • Vim 技巧 - 重复上一次 substitute 命令
    • Vim 技巧 - 使用子匹配重排 CSV 文件的字段
    • Vim 技巧 - 自动补全整行文本
    • Vim 技巧 - 以 g 开头的命令
      • 增强
        • g + ^/0/$/j/k
        • g + _
        • g + #/*
        • g + n/N
        • g + I
        • g + J
        • g + v
        • g + p/P
      • 移动
        • g + i
        • g + ;/,
        • g + e/E
        • g + t/T
        • g + f
        • g + g/o
        • g + d
        • g + x
        • g + m
      • 其它
        • g + u/U/~
        • g + h
        • g + a
        • g + ?
    • Vim 技巧 - 以 z 开头的命令
    • Vim 技巧-ctrl 命令
    • Vim 技巧
    • 每日一 Vim 笔记
  • 键盘侠
  • Vim 技巧
Henry
2022-11-18
目录

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? 编码解码一行

编辑 (opens new window)
#Vim
上次更新: 5/27/2023, 1:02:05 PM
Vim 技巧 - 自动补全整行文本
Vim 技巧 - 以 z 开头的命令

← Vim 技巧 - 自动补全整行文本 Vim 技巧 - 以 z 开头的命令→

最近更新
01
version 1.15
07-01
02
version 1.14
06-27
03
version 1.13
06-27
更多文章>
Theme by Vdoing | Copyright © 2017-2023 HenryTSZ | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式