|
43 | 43 | 源码来自 https://github.com/humiaozuzu/dot-vimrc |
44 | 44 |
|
45 | 45 |
|
| 46 | + |
| 47 | +#vim 使用 |
| 48 | + |
| 49 | +###命令行模式: |
| 50 | +| 提示符 | 说明 | |
| 51 | +| :------ | :---------- | |
| 52 | +| : | 执行一条Ex命令 | |
| 53 | +| / | 执行正向查找 | |
| 54 | +| ? | 执行反向查找 | |
| 55 | +| = | 对一个vim 脚本表达式求值,在插入模式下安<C-r>=才能进入,只能计算加减乘 | |
| 56 | +| :s/target/repl | 执行行内替换 (&重复做、u撤销) | |
| 57 | + |
| 58 | + |
| 59 | +###普通模式: |
| 60 | +| 命令 | 说明 | |
| 61 | +| :------------- | :--------------- | |
| 62 | +| . | 重复上一个操作 | |
| 63 | +| C 等效 c$ | 向后删除 | |
| 64 | +| s 等效 cl | 删除当前光标下的字符,并进入插入模式 | |
| 65 | +| S 等效 ^C | 从当前行的行首删除整行内容,并进入插入模式 | |
| 66 | +| I 等效 ^i | 将光标移到当前行行首,并进入插入模式 | |
| 67 | +| A 等效 $a | 将光标移到当前行行尾,并进入插入模式 | |
| 68 | +| o 等效 A<CR> | 向下新增一行,并进入插入模式 | |
| 69 | +| O 等效 ko | 向上新增一行,并进入插入模式 | |
| 70 | +| vit | 选中一对html标签之间的文本 | |
| 71 | +| >G | 缩进光标所在行及以下的所有行 | |
| 72 | +| daw | 删除当前光标所在的整个单词 (delete a word) | |
| 73 | +| cit | 删除HTML标签里的内容 | |
| 74 | +| \<C-a>/\<C-x> | 对当前数字加1/减1 | |
| 75 | +| zz | 显示当前所在行的上下文 | |
| 76 | +| r | 替换当前字符 | |
| 77 | +| p/P | 向光标后/前粘贴内容 | |
| 78 | +| R | 进入替换模式,可以连续替换 | |
| 79 | +| # | 高亮与当前光标所在单词相同的所有单词 | |
| 80 | +| * | 选中当前光标所在单词一样的单词 | |
| 81 | +| U | 将当前选中的字符转为大写 | |
| 82 | +| u | 将当前选中的字符转为小写 | |
| 83 | +| `. | 回到上次修改的地方 | |
| 84 | +| mk | 把当前光标所在位置,设置一个名字为k的标记,使用`k可以跳回这里,最多26个标记。 | |
| 85 | +| mB | 把当前文件,设置一个名字为B的标记,在其他文件下使用`B可以跳到这个文件来,最多26个标记。 | |
| 86 | +| {/} | 跳到上一段/下一段的开头 | |
| 87 | +| H/M/L | 跳到屏幕的上/中/下 | |
| 88 | +| "+yy | 复制光标所在行到系统剪贴板 | |
| 89 | +| "+p | 将系统剪贴板的内容粘贴到vim来 | |
| 90 | + |
| 91 | + |
| 92 | +###插入模式下: |
| 93 | +| 命令 | 说明 | |
| 94 | +| :----- | :------ | |
| 95 | +| \<C-h> | 删除前一个字符 | |
| 96 | +| \<C-w> | 删除前一个单词 | |
| 97 | +| \<C-u> | 删除至行首 | |
| 98 | +| \<C-[>/\<C-o> | 替代ESC | |
| 99 | +| \<C-v>u{1234} | 插入特殊字符,例如:\<C-v>u00bf | |
| 100 | + |
| 101 | + |
| 102 | +###可视化模式: |
| 103 | +| 命令 | 说明 | |
| 104 | +| :----- | :------ | |
| 105 | +| viw | 选中当前单词 | |
| 106 | +| v | 激活面向字符的可视模式 | |
| 107 | +| V | 激活面向行的可视模式 | |
| 108 | +| \<C-v> | 激活面向列块的可视模式 | |
| 109 | +| vb | 以-个单词为单位,往前选中,如:vbbb,选中前3个单词 | |
| 110 | +| ve | 以-个单词为单位,往后选中,如:vee,选中前2个单词 | |
| 111 | +| o | 在上面三种操作中,移动光标到选中区域的首或尾 | |
| 112 | +| gv | 重选上次的高亮选区 | |
| 113 | +| \<C-v> j j $ A ; \<ESC> | 在长短不一的行后都加上一个;号 | |
| 114 | + |
| 115 | + |
| 116 | +###操作符: |
| 117 | +| 命令 | 说明 | |
| 118 | +| :----- | :------ | |
| 119 | +| c | 修改 | |
| 120 | +| d | 删除 | |
| 121 | +| y | 复制到寄存器 | |
| 122 | +| g~ | 反转大小写 | |
| 123 | +| gu | 转换为小写 | |
| 124 | +| gU | 转换为大写 | |
| 125 | +| > | 增加缩进 | |
| 126 | +| < | 减小缩进 | |
| 127 | +| = | 自动缩进 | |
| 128 | +| ! | 使用外部程序过滤动作命令所跨越的行 | |
| 129 | + |
| 130 | +###动作命令:(配合操作符c,d,y,v使用) |
| 131 | +| 命令 | 说明 | |
| 132 | +| :----- | :------ | |
| 133 | +| iw | 当前单词 | |
| 134 | +| iW | 当前字符串(以空格为分界) | |
| 135 | +| is | 当前句子 | |
| 136 | +| ip | 当前段落 | |
| 137 | +| aw | 当前单词 + 一个空格 | |
| 138 | +| aW | 当前字符串 + 一个空格(以空格为分界) | |
| 139 | +| as | 当前句子 + 一个空格 | |
| 140 | +| ap | 当前段落 + 一个空行 | |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | +###命令行模式: |
| 145 | +| 命令 | 说明 | |
| 146 | +| :----- | :------ | |
| 147 | +| :3d | 删除第三行 | |
| 148 | +| :2,5p | 2~5行 | |
| 149 | +| :.,$p | 当前行到最后一行 | |
| 150 | +| :%p | 所有行 | |
| 151 | +| :ls | 查看在缓冲区的所有文件 | |
| 152 | +| :buffer N | 结合:ls 使用,调到指定的文件进行编辑 | |
| 153 | +| :e. | 打开当前路径的文件目录 | |
| 154 | +| :g/andy/d | 删除有"andy"字符的行 | |
| 155 | +| :v/andy/d | 只保留有"andy"字符的行 | |
| 156 | +| :sort | (vi{,:sort) 对css的属性按字母排序 | |
| 157 | + |
| 158 | + |
| 159 | + |
| 160 | +###其他: |
| 161 | +vim 中提到的 `缓冲区` 就是vim在编辑某个文件时,实际上是在编辑.swap文件,保存时才被写入到实际的文件中的。 |
| 162 | + |
| 163 | + |
| 164 | +vim -u NONE -N 以出厂配置来使用vim |
| 165 | + |
| 166 | +操作符号 + 动作命令 = 操作 |
| 167 | + |
| 168 | + |
| 169 | + |
0 commit comments