第1章 Vim解决问题的方式
技巧1 认识 . 命令
1 # . 2 # 重复上一次操作 3 # x 4 # 删除当前位置的字符 5 # dd 6 # 删除当前行 7 # >G 8 # 光标位置及以向下所有行向未尾处缩进 9 # j 10 # 光标位置移到下一行对就的位置 11 # . 可以重复以上所有命令,除了j以外。只重复改变文本内容的操作?
技巧2 不要自我重复
1 # 在第一行未尾处添加 ; 2 # A; 3 # ESC退出插入模式 4 # j. 5 # j. 6 #..... 7 8 # $ 9 # 光标移动到行的最后一个字符上 10 # ^ 11 # 光标移动到行的第一个字符上 12 # a 13 # 光标后插入字符 14 # k 15 # 与j相反,移动到上一行相同位置 16 17 # 一箭双雕 18 # $a 等价于 A 19 # C 等价于 c$ 20 # 删除光标位置至行未字符,并进入插入模式 21 # s 等价于 cl 22 # 删除光标位置处字符,并进入插入模式 23 # S 等价于 ^C 24 # 光标回到行首,并删除整行字符和进入插入模式 25 # I 等价于 ^i 26 # 回到行尾,并进入插入模式 27 # o 等价于 A<ER> 28 # 跳到行尾,插入模式,Enter回车 29 # O 等价于 ko 30 # 与o相反,向上插入一行,并进入插入模式
技巧3 以退为进
1 # h j k l 2 # 左 下 上 右 光标移动操作 3 4 # f{char} 5 # 查找下一处指定字符出现的位置 6 # ; 7 # 到下一个目标字符上 8 9 # var foo = "method("+argument1+","+argument2+")"; 10 # 将以上的js代码按规范拼接 11 # f+ s 空格+空格 ;. ;.
技巧4 执行、重复、回退
1 # 目的 操作 重复 回退 2 # 做出一个修改 {edit} . u 3 # 在行内查找下一指定字符 f{char}/t{char} ; , 4 # 在行内查找上一指定字符 F{char}/T{char} ; , 5 # 在文档中查找下一处匹配项 /pattern<CR> n N 6 # 在文档中查找上一处匹配项 ?pattern<CR> n N 7 # 执行替换 :s/target/repalcement & u 8 # 执行一系列修改 qx{changes}q @x u
技巧5 查找并手动替换
1 # * 2 # 跳转到下一个相同的单词 3 # cw 4 # 删除由光标至单词尾处(特殊字符不删除) 5 6 # 将文档中的content 修改为 copy 7 # 方法1: 一个个修改 8 # 光标定位到第一个content==》*==》cw==>copy==>Esc==>n.==>n. 9 # 方法2: 10 # :%s/content/copy/g
技巧6 认识 . 范式
对上面所使用的.进行了一次总结