目录

vim

目录

范围+文本对象

范围

  • 内部:i ,意指 inner
  • 外部:a ,英文单词 a,一个的意思

文本对象

  • ( 或 ) :一对 ()
  • b :一对 ()
  • { 或 } :一对 {}
  • B :一对 {}
  • [ 或 ] :一对 []
  • < 或 > :一对 <>
  • t :tag (HTML 或 XML)标签
  • ' 或 ' :一对 ''
  • " 或 " :一对 ""
  • ` 或 ` :一对 ``
  • w :一个单词
  • s :一个句子;以 . ! ? 结尾即为一个句子
  • p :一个段落;以一个换行符间隔即为一个段落(一般用于对函数体操作)

比如i'代表'内部,iw代表光标所在单词,注意到,加上了范围i或者a,则原本的w含义也发生了变化,注意这是两个东西,原本的w为一个移动,而这里的w代表文本对象即单词。

move

some easy

  • hjkl,左下上右
  • wbeWBE,单词级别
  • 0和$,行首和行尾
  • ^和g _,行首和行尾,但不算空白字符
  • H和L,页面相关,基本就是映射到^和g _
  • %括号匹配 ## search
  • 光标移到要搜索的单词,*向下查找,#向上查找
  • /向下模糊搜索,?向上模糊搜索,配合nN
  • f + 字符:自左往右移动光标到下一个匹配的字符中
  • F + 字符:自右往左移动光标到下一个匹配的字符中
  • t + 字符:自左往右移动光标到下一个匹配的字符的前一个字符中
  • T + 字符:自右往左移动光标到下一个匹配的字符的后一个字符中
  • ;:重复执行上一个搜索命令
  • ,: 与上一个命令方向相反地执行上一个搜索命令

动词

some easy

  • d: 删除

  • c: 删除并进入insert模式

  • y: 复制

  • ys, ds, cs,vim-surround插件,对应添加括号,删除括号,修改括号

  • .重复上一个命令

  • u撤销上条命令

  • p粘贴剪切板内容

  • r替换 ## g+?整理

  • g : 定位到上次编辑位置

  • g c 注释

  • g h 弹出变量或者函数的详细信息

  • gugU 小写或大写,g u ug U U整行小写大写

  • g b 多选相同的word

  • gg文件首,G文件尾

  • 3G3gg:3,跳到第3行

数量词

  • 1234567...表示命令执行的次数。

结合起来吧

动词 + move

- d h,删除前一个字符 - d w,删除字符到下一个单词开头 - d tV,删除字符到下一个v字符前面 - d 2fb,删除字符到第二个b,且包括这个b,等同于2 dfb ## 动词 + (范围) +文本对象 - ys w',给当前到下一个单词前添加'号 - ds ',删除包裹的符号 - cs [(,将[]修改为() - yssb,整行添加括号,重复两次代表对行操作,b在前面介绍说了是文本对象,代表括号。 - ysiw',出现了两个文本对象,第一个与前面的i结合为iw代表单词,第二个文本对象代表即位要添加的引号,注意和第一条的区别,w所代表的不同。 - gUw,大写直到下一个单词前,是动词+move,gUiw,大写光标所在单词,是动词+范围+文本对象。