Vim笔记:技巧1 - 技巧5
1、简要说明
1、占位符
标记 | 含义 |
---|
f{char} | 按 f,后面跟任意字符 | `{a-z} | 按`,后面跟任意小写字母 | m{a-zA-Z} | 按 m,后面跟任意小写或大写字母 | d{motion} | 按 d,后面跟任意动作命令 | {register} | 同时按 和 r,后面跟一个寄存器地址 |
2、特殊键对照表
标记 | 含义 |
---|
<Esc> | 按退出键 | <CR> | 按回车键,也写作 | <Ctrl> | 按控制键 | <Tab> | 按制表键 | <Shift> | 按切换键 | <S-Tab> | 同时按 和 | <Up> | 按上光标键 | <Down> | 按下光标键 | ? | 按空格键 |
ps:空格由? 表示。它和 f{char} 命令组合在一起时记为 f? 。
普通模式:cwreplacement<Esc> 删除从光标位置到当前词结尾处的文本,并切换到插入模式。然后我们在插入模式中输入单词“replacement”,并按 键再切换回普通模式。
3、命令行操作
标记 | 含义 |
---|
$ | 在外部 shell 中执行命令行命令 | : | 用命令行模式执行一条 Ex 命令 | / | 用命令行模式执行正向查找 | ? | 用命令行模式执行反向查找 | = | 用命令行模式对一个 Vim 脚本表达式求值 |
2、Vim解决问题的方式
技巧1 结识 . 命令
. 命令可以让我们重复上次的修改,它是 Vim 中最为强大的多面手。 |
---|
x 命令会删除光标下的字符。 |
dd 命令也做删除操作,但它会把整行一起删掉。 |
---|
\>G 命令会增加从当前行到文档末尾处的缩进层级。 |
ps:x 、dd 以及 > 命令都是在普通模式中执行的命令,不过,每次我们进入插入模式时,也会形成一次修改。从进入插入模式的那一刻起(例如,输入 i ),直到返回普通模式时为止(输入<Esc> ),Vim 会记录每一个按键操作。做出这样一个修改后再用 . 命令的话,它将会重新执行所有这些按键操作。
. 命令是一个微型的宏。 |
---|
Vim 可以录制任意数目的按键操作,然后在以后重复执行它们。 | 我们可以把 . 命令当成一个很小的宏(macro)。 |
技巧 2 不要自我重复
$ 命令可以完成移动到结尾的动作。 |
---|
a;<Esc> 在光标之后进入输入模式并加入内容,写入; 在退回到普通模式。 | A 命令在当前行的结尾添加内容。 |
复合命令 | 等效的长命令 |
---|
C | c$ | s | cl | S | ^c | I | ^i | A | $a | o | A | O | ko |
技巧 3 以退为进
s 命令把两个操作合并为一个:它先删除光标下的字符,然后进入插入模式。在删除 + 号后,我们先输入?+? ,然后退出插入模式。 |
---|
f{char} 命令让 Vim 查找下一处指定字符出现的位置,如果找到了,就直接把光标移到那里。 | ; 命令会重复查找上次 f 命令所查找的字符。 |
技巧 4 执行、重复、回退
在面对重复性工作时,我们需要让移动动作和修改都能够重复,这样就可以达到一个最佳编辑模式。
@: 可以用来重复任意 Ex 命令 。 |
---|
我们也可以输入 & 来重复上次的:substitute 命令。 | 对 . 命令而言,我们永远可以按 u 键撤销上次的修改。 | 在使用f{char} 命令后,不小心按了太多次 ; 键,就会偏离我们的目标。不过我们可以再按 , 键跳回去,这个命令会反方向查找上次 f{char} 所查找的字符。 |
目的 | 操作 | 重复 | 回退 |
---|
做出一个修改 | {edit} | . | u | 在行内查找下一指定字符 | f{char}/t{char} | ; | , | 在行内查找上一指定字符 | F{char}/T{char} | ; | , | 在文档中查找下一处匹配项 | /pattern | n | N | 在文档中查找上一处匹配项 | ?pattern | n | N | 执行替换 | : s/target/replacement | & | u | 执行一系列修改 | qx{changes}q | @x | u |
技巧 5 查找并手动替换
Vim 提供了一个:substitute 命令专门用于查找替换任务。
* 命令可以查找当前光标下的单词。会产生两个结果:一是光标会跳到下一个匹配项上,二是所有出现这个词的地方都会被高亮显示出来。 |
---|
*nn 会遍历完所有的匹配项,从而跳回到本次查找的起点。 | cw 命令会删除从光标位置到单词结尾间的字符,并进入插入模式。 |
技巧 6 结识 . 范式
用一键移动,另一键执行
|