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
- 光标移到要搜索的单词,
*向下查找,#向上查找 /向下模糊搜索,?向上模糊搜索,配合n和Nf+ 字符:自左往右移动光标到下一个匹配的字符中F+ 字符:自右往左移动光标到下一个匹配的字符中t+ 字符:自左往右移动光标到下一个匹配的字符的前一个字符中T+ 字符:自右往左移动光标到下一个匹配的字符的后一个字符中;:重复执行上一个搜索命令,: 与上一个命令方向相反地执行上一个搜索命令
动词
some easy
d: 删除c: 删除并进入insert模式y: 复制ys, ds, cs,vim-surround插件,对应添加括号,删除括号,修改括号.重复上一个命令u撤销上条命令p粘贴剪切板内容r替换
g+?整理
g :定位到上次编辑位置g c注释g h弹出变量或者函数的详细信息gu和gU小写或大写,g u u和g U U整行小写大写g b多选相同的wordgg文件首,G文件尾3G或3gg或: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,大写光标所在单词,是动词+范围+文本对象。