Linux-vim基本操作命令


插入模式

  • i

    insert 进入编辑模式

  • I

    insert before line 在行首开始插入

  • a

    append 和 ==i== 相似,不同在于在当前光标所在字母前,还是后插入(一试便知)

  • A

    append after line 在行尾开始插入

  • o

    open a line below 在当前行下面新生成一行并进入编辑模式(你是不是还在的敲回车呢!)

  • O

    append a line above 在当前行上一行开始插入

  • Ctrl + h

    删除上一个字符

  • Ctrl + w

    删除上一个单词

  • Ctrl + u

    删除当前行

Normal模式

  • :set nu

    设置行号

  • :set hls

    设置搜索结果高亮

  • :set incsearch

    增量搜索结果高亮

  • :vs

    垂直分屏

  • :sp

    水平分屏

  • :q

    退出当前分屏

  • :% s/hello/world/g

    将当前文件中的hello替换为world

  • :% s/\<xxx\>/yyy/g

    正则匹配xxx

替换标志位
  • g global 全局范围内执行
  • c confirm 表示确认,可以确认或拒绝修改
  • n number 报告匹配到的次数而不替换,可以用来查询匹配次数
反人类的上下左右

hjkl

  • h 左移(四个键的最左边)
  • l 右移(四个键的最右边)
  • j 下移
  • k 上移
单词间移动

word:以非空白符分割的单词(真单词)
WORD:以空白符分割的单词(不一定是单词)

  • w/W 移动到下一个单词word/WORD的开头
  • e/E 移动到下一个单词word/WORD的结尾
  • b/B 移动带上一个单词word/WORD的开头
行间搜索移动
  • f{char} 同一行搜索并移动到该字符
  • t{char} 同行搜索并移动到该字符的前一个字符
  • ; 分号下一个
  • , 逗号上一个
  • F{char} 反过来搜索前面的字符
  • 0 移动到行首第一个字符
  • ^ 移动到第一个非空字符
  • $ 移动到行尾
  • g_ 移动到行尾非空白字符
  • zz 把当前行置为屏幕中间
文件开头、结尾
  • gg 快速移动到文件开头
  • G 快速移动到文件结尾
屏幕开头、中间、结尾
  • H Head 跳转到屏幕开头
  • M Middle 跳转到屏幕中间
  • L Lower 跳转到屏幕结尾
翻页
  • Ctrl + u upword 向上翻页
  • Ctrl + f forward 向下翻页

Visual可视模式

  • v

    VISUAL 进入可视模式,此时按上下左右可选中状态

  • V

    VISUAL LINE 选中整行

  • Ctrl v

    VISUAL BLOCK 方块选中

选中之后干什么
  • d

    delete 删除选中内容

  • y

    yanke 复制选中内容

  • p

    paste 粘贴内容(在当前光标位置后或下以行粘贴内容)

命令模式

快捷键

  • Ctrl + [

    快速切换Insert模式到Normal模式

  • gi

    快速回到最后一次编辑的位置

Vim增删改查

增加字符
  • a/i/o
快速删除
  • x 快速删除一个字符
  • d 配合文本对象快速删除一个单词
  • dx都可以搭配数字来执行多次
  • dw==daw 删除单词个空格
  • diw 删除单词,不删空格
  • dt{char} 删除光标到目标字符之间的所有字符
  • d0 删除到行首之间的字符
  • d$ 删除到行尾之间的字符
  • 4x 删除4个字符
  • 2dd 删除两行
快速修改
  • r replace r{char} 替换光标所在字符
  • R 以替换的形式输入
  • c change
  • s substitute 删除光标所在字符,并进入插入模式
  • 2s 删除两个字符并进入插入模式
查询
  • / 正向查询
  • ? 反向查询
  • n 跳转到下一个匹配
  • N 跳转到上一个匹配
  • * 进行当前单词的前向匹配
  • # 进行当前单词的后向匹配

  目录