Vim 概览

# 前言

vim 模式:

理解:vim接口本身是一种编程

# 查看帮助

  • tldr vim
  • man vim
  • 命令模式下输入:help <参数>, 可以通过前缀进一步指定上下文, 更多上下文及说明参见 help-summary (opens new window)

# 正常模式

  • u: 撤销你做的最后一次更改(编辑模式下的全部内容,或可视模式下的删除、替换等)
  • ctrl r: redo

# 移动

详见官方中文文档 (opens new window)非常详细

  • hjkl: 左下上右
  k
h    l 
  j
1
2
3
  • w(word): 光标向后移动一个词
  • b(backward): 光标向前移动一个词
  • e(end): 光标移动到单词末尾,已在末尾则移动到下个词尾
  • 0: 移动到行首
  • $: 移动到行尾
  • ^: 移动到行中第一个非空
  • ctrl u: 向上滚动(约半屏)
  • ctrl d: 向下滚动(约半屏)
  • G(大写): 滚动到尾
  • f 2: 找到后面的2
  • F 2: 找到前面的2
  • t 2: 找到后面的2,光标停在2前面
  • T 2: 找到前面的2,光标停在2后面
  • %: 如过当前光标停留不同类型的分组上,如(),[],可使用%在匹配的括号之间来回跳转
  • ;: 重复前次 "f"、"F"、"t" 或 "T" 命令
  • ,: 以相反方向重复前次 "f"、"F"、"t" 或 "T" 命令

# 编辑

  • x: 删除当前字符
  • r 2: 替换当前选中字符为2
  • ~: 大小写转换

d: 删除

尝试与上面移动键组合

  • o: 在当前行的下一行进入编辑模式
  • d w: 删除后面一个单词
  • d b: 删除前一个单词
  • d d: 删除当前行

c(change): 删除并编辑

尝试与上面移动键组合,它会删除从当前位置到光标移动到的目标位置 的全部内容。

  • c c: 删除当前行,光标移动到行首进入编辑模式

y: 复制****

尝试与上面移动键组合,它会复制从当前位置到光标移动到的目标位置 的全部内容。

p:粘贴

# 计数

尝试与上面编辑、移动符号组合

d4d: 删除4行

5j: 向下移动5行

d5w: 删除5个词

# 修饰符

i: inside

a 整体

eg:

ci(: 删除光标()中的内容,进入编辑模式

c%: 如当前光标停留在(,删除()及()中的内容

da(: 删除光标所在,被()包裹的内容

# 可视模式

正常模式按 v 进入,按移动键选择

# VISUAL BLOCK 模式

正常模式按ctrl v进入,按移动键选择,跨行选择矩形文本块

# 命令模式

正常模式按:进入

:tabnew: 新建tab

:/关键词:搜索关键词,光标跳转到关键词处

:set mouse=a: 启动对鼠标的支持

:qa!: 离开 Vim,(当心,所有的改动都会丢失!)

set nu 或者 set number : vim显示行数

# 相关链接

[1] 官方中文手册 (opens new window)

[2] 官方中文手册-总览 (opens new window)

# 随记

  • -g: E25: GUI cannot be used: Not enabled at compile time