ZhouChuang's Blog ZhouChuang's Blog
首页
  • 常用命令
  • 日常总结
  • Prometheus
  • 基础
  • 常用库
  • 底层原理
专题
  • 「编码」
  • 计算机网络学习笔记
更多
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Zhou Chuang

为学日益 为道日损
首页
  • 常用命令
  • 日常总结
  • Prometheus
  • 基础
  • 常用库
  • 底层原理
专题
  • 「编码」
  • 计算机网络学习笔记
更多
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Linux 命令

  • 日常的总结

    • 进程管理工具:supervisor
    • 文件传输工具:scp、rsync
    • 正则和文本处理三剑客小结
    • 加密工具 GPG
    • 单节点部署 openGauss
    • Vim小抄
      • VIM 入门
        • Vim 模式
        • Normal 模式
        • Insert 模式
        • Command 模式
        • Visual 模式
      • 移动与编辑
        • 基于单词的移动
        • 基于搜索的移动
        • 基于标记的移动
        • 其他实用跳转
        • Operator+Motion=Action
        • 重复操作
        • 批量操作:数字+动作
        • 相对行号
      • 文本对象操作
  • Prometheus 技术栈

  • 运维
  • 日常的总结
ZhouChuang
2025-12-31
目录

Vim小抄

CleanShot 2025-12-31 at 23.50.01@2x

# VIM 入门

# Vim 模式

主要的 4 种模式:

  • Normal 模式:默认进⼊的模式,也是最常⽤的模式
  • Insert 模式:插⼊模式,像正常的⽂本编辑器⼀样输⼊
  • Command 模式:命令模式,在底部输⼊命令
  • Visual 模式:可视模式,对文本进行选择

# Normal 模式

  • hjkl:左上下右
  • gg:跳到第一行
  • G:跳到最后一行
  • <Ctrl-u>、<Ctrl-b>:往上翻半页、一页
  • <Ctrl-d>、<Ctrl-f>:往下翻半页、一页
  • {lineno}gg:跳到第 lineno 行
  • zz、zt、zb:光标行设置为 屏幕居中、屏幕第一行、屏幕最后一行

# Insert 模式

  • i:insert,当前光标之前开始输入
  • I:本行开头进行输入
  • a:append,当前光标之后开始输入
  • A:本行末尾进行输入
  • o:下方插入新的一行,输入
  • O:上方插入一行,输入
  • s:删除当前光标的字符,输入
  • S:删除当前行,输入

# Command 模式

Normal 模式下输入 : 进入 Command 模式

  • :w
  • :q
  • :q!
  • :wq
  • :h {command}

<Esc> 回到 Normal 模式

# Visual 模式

  • Normal 模式下按 v 进入可视模式
  • x、y:剪切、复制,回到 Normal 模式下 p粘贴
  • Normal 模式下 V 进入行可视模式,方便多行操作

<Esc> 回到 Normal 模式

# 移动与编辑

# 基于单词的移动

  • w:word,跳转到下个单词开头
  • b:back,跳转到上个单词开头
  • e:end,跳转到下个单词结尾
  • ge:e 的反向,跳转到上个单词结尾

wbe 大写 WBE 对应连续的非空字符。

# 基于搜索的移动

行内搜索:

  • f{char}、t{char}:跳转到本行下个 char 字符出现处、出现前(till直到...前)
  • ; 、,:快速向后、向前重复 ft 查找
  • F{char}、T{char}:往前搜索而非往后

文件中搜索:

  • /{pattern}:跳转到本文件下一个 pattern 出现的地方
  • ?{pattern}:跳转到本文件上一个 pattern 出现的地方
  • pattern 可以是正则表达式
  • *:等价于 /{pattern},pattern 是当前光标下的单词
  • nN:快速重复、查找

# 基于标记的移动

  • m{mark}:把当前位置标记为 mark
  • ``{mark}`:跳转到名为 mark 的标记位置

mark 是 a-z 的字符

常用场景:需要临时离开当前位置,操作后回到此处

内置标记:

  • ``:上次跳转前的位置
  • `.:上次修改的位置
  • `^:上次插入的位置

# 其他实用跳转

  • ^、$:行首和行尾
  • %:将光标移动到任何一个括号上,按下 %,光标会自动跳转到与其匹配的另一半括号上

# Operator+Motion=Action

{operator}{motion}:⼀次编辑动作

常见操作符:

  • c:change,修改,删除内容并进入插入模式
  • d:delete,删除
  • y:yank,复制
  • v:visual,可视模式

cc、dd、yy:将其作用在这一行上

例子:

  • dgg:删除到第一行
  • ye:复制到单词结尾
  • d$:删除到行尾
  • dt;:删除只到分号为止的内容

# 重复操作

  • .:重复上次修改
  • u:撤销上次修改
  • <Ctrl-r>:重做上次修改

# 批量操作:数字+动作

{count}{action}:重复 count 次 action 动作

动作可以是移动动作或者编辑动作

例如:

  • 4j:向下移动 4 行
  • 3dw:删除 3 个单词
  • 2yy:复制 2 行
  • 4p:粘贴 4 次

# 相对行号

当涉及⾏操作时,使⽤相对⾏号能够更直观地确定范围

  • :set relativenumber :开启
  • :set norelativenumber:关闭

# 文本对象操作

格式:i/a + 对象

常见对象:

  • w、W,s,p:单词、句子、段落
  • (/),[/],{/},</>,'/":配对符定义的对象

i 代表inner,内部

a 额外包括周围的空格或配对符

CleanShot 2025-12-31 at 23.43.04@2x

[count]{operator}{textobjects}

举例:

  • diw:删除一个单词
  • ci(:修改小括号内部
  • yi{:复制大括号内部

通过组合 operator 与 textobjects ,可以对不同的语义对象实施不同的操作,不仅⼗分灵活,⽽且语义明确,容易记忆

配合 . 命令或 [count] 可以简单地完成多次对特定语义对象的操作

#vim
上次更新: 2025/12/31, 23:53:28
单节点部署 openGauss
Prometheus 概念

← 单节点部署 openGauss Prometheus 概念→

最近更新
01
浅析切片的原理与易错点
10-19
02
单节点部署 openGauss
10-16
03
概述
06-28
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Zhou Chuang 版权所有| 鲁ICP备2021031629号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式