学习使用vim

*tips: *

  • 交换ctrl键与caps键的位置
  • 使用ctrl + [ 替代 esc

移动光标(命令模式下)

上下左右

  • hjkl: 左下上右
  • 可以在hjkl前加数字
    • 5j: 下移5行
    • 5h: 左移5个字符

基于单词移动

  • w:正向移动到下一单词的开头
  • b:反向移动到当前单词/上一单词的开头
  • e:正向移动到当前单词/下一单词的结尾
  • ge:方向移动到上衣单词的结尾

对行内字符进行查找并移动光标

  • f{char}: 正向移动到下一个char所在之处
  • F{char}: 反向…
  • t{char}: 正向移动到下一个char所在之处的前一个字符上
  • T{char}: 方向移动…
    • 用t找标点
  • ;: 重复上次字符查找命令
  • ,: 反转方向查找上次字符查找命令

移动多行

  • { }: 移动到前一个/后一个 段落的开头

  • ( ): 移动到前一个/后一个 句子的开头

  • [m ]m: 移动到前一个/后一个 函数的开始

  • ctrl + f: 下翻页

  • ctrl + b: 上翻页

  • ctrl + d: 下翻半页

  • ctrl + u: 上翻本页

设置标记,快速回跳

  • m{mark}
  • `{mark}

文本对象的选择(可视模式)

分隔符文本对象

  • a + ) / ] / } / > ‘ / “ / `

    • a – around
    • 选中分隔符及其内的文本
  • i + ) / ] / } / > ‘ / “ / `

    • insert
    • 选中分隔符内的文本, 不包括分隔符
  • a/i + b == a/i + )

  • a/i + t: 选中xml标签

范围文本对象

  • iw: 选中当前单词
  • aw: 选中当前单词及其后的空格
  • i/a + w: 选字符串
  • i/a + s: 选句子
  • i/a + p: 选段落

操作符待决模式{motion}

{motion}:分隔符文本对象和范围文本对象

  • d{motion} : 删除模式
  • c{motion} : 修改模式
  • y{motion} : 复制模式
  • v{motion} : 可视模式

寄存器

寄存器是vim保存临时数据的地方。

查看寄存器

  • :reg
  • :reg registerName

取寄存器的值

  • “registerName
  • + registerName

寄存器分类

  1. 无名寄存器(“)

    • 默认寄存器,x,s,d,c,y的数据都会存入到改寄存器
  2. 数字寄存器(0-9)

    • 0:复制专用寄存器(y操作)
    • 1-9:逐级临时缓存寄存器
      • 所有不带范围(‘(’,‘)’,‘{’,‘}’)、操作涉及1行以上的删除修改操作(x、s、d、c)的数据都会复制到逐级临时缓存寄存器
      • 新的数据加入时,逐级先后推移。
  3. 黑洞寄存器(_)

    • 数据到该寄存器会消失掉。所有对于一些不需要的记录的数据,可以指定到该寄存器。
  4. 系统剪切板(+ *)

    • +: copy了的数据
    • *: 选中的但为copy的数据
  5. 表达式寄存器(=)

    • 用于计算表达式
  6. 其他寄存器

    • %:记录当前文件名,包含文件路径
    • /:记录上次查找的内容
    • .:记录上次插入的内容

宏录制

  • 录制(normal mode)

    1. q + registerName: 开始录制
    2. q: 结束录制
  • 使用(normal mode)

    • @ + 存入的寄存的名字
    • @@:重复使用上一次的宏
  • 批量操作

    1. 块模式下选中要操作的行
    2. :normal @registerName

查找替换

查找

  • /{pattern}: 查找
  • *: 正向查找光标所在单词
  • #: 反向查找光标所在单词

替换

  • 全局替换: :%s/{pattern}/{string}/g

    • %: 代表全文
    • s: 代表substitute
    • g: global
  • 可视区域替换

    1. 可视模式选区域
    2. :s/{pattern}/{string}/g

 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×