配置~\_vimrc
先引入vim自带的两个例子
:r $VIMRUNTIME\vimrc_example.vim
:r $VIMRUNTIME\gvimrc_example.vim
_vimrc末尾添加自定义配置
colorscheme murphy
Undo/Redo
撤销最后执行的单个命令 | u |
撤销当前行执行过的所有命令 | U |
重做最后一个被撤销的命令 | CTRL-R |
跳转
字首 | b或w | b:当前字的首字符,或前一个字的首字符; w:后一个字的首字符 |
字末 | e | 当前字的末字符,或后一个字的末字符 |
行首 | ^或数字0 | ^:首个非空白字符; 0:首个字符; |
行末 | & | |
文首 | gg | 文件首行首个非空白字符 |
文末 | G | 文件最后一行 |
查找过的位置 | CTRL-I或Tab, CTRL-O | I是文末方向,O是文首方向 |
拉出、置入
拉出内容默认放入寄存器x,置入时默认从寄存器x中取出。
拉出就是所谓”删除、剪切、变更、复制“,区别就是拉出内容是否放入黑洞寄存器,拉出后是否保留原有字符以及不保留时是否直接进入插入模式。
置入就是所谓”粘贴“,只不过内容是从寄存器x取出,而非系统剪贴板。
按字符拉出 | x或dl, X或dh, yl, yh, cl, ch | l当前字符; h前一个字符; |
按目标拉出 | d+[count]+[motion] c+[count]+[motion] y+[count]+[motion] | 把执行命令[count]+[motion]后所能到达的位置,称为目标位置。 令当前位置和目标位置当中靠前的位置设为P1,靠后的位置设为P2,那么区间[P1, P2)中的所有字符将会被拉出。这里注意区间的右侧是开放的,即位于P2的字符不会被拉出。 |
按行拉出 | [count]+dd [count]+cc [count]+yy [count]+Y | 拉出多行,不指定[count]时默认拉当前行; |
粘贴 | [count]+p [count]+P | p表示往后粘贴,P表示往前粘贴; 寄存器x内容是linewise时,粘贴到当前行的前或后; 寄存器x内容是characterwise,粘贴到当前光标的前或后; |
快捷操作 | D | 剪切当前位置至行末的内容 |
插入
单次插入 | i, a 字符前后 I, A 行首(首个非空白符)行末 o, O 行后行前 |
重复插入 |
|
匹配、替换
配对括号 %
单个字符 r
行内替换 :s/old/new :s/old/new/g (不带g表示只替换头一个,带g表示行内全部替换)
两行之间 :#,#s/old/new/g (#,#表示行号)
整篇文章 :%s/old/new/g :%s/old/new/gc (带c表示“替换前提示”)