原文地址:LoveDev
VIM == "编辑器之神"
移动
单词移动
| Command |
Alias |
| W w |
移动到下一个单词开头 |
| E e |
移动到下一个单词结尾 |
| B b |
倒退到上一个单词开头 |
整行移动
| Command |
Alias |
| 0 |
移动到行首 |
| $ |
移动到行末 |
| + |
移动到下一行开头 |
| - |
移动到上一行开头 |
根据行号来移动
| Command |
Alias |
| Ctrl+g |
显示当前行信息 |
| nG |
转至第n行 |
| G |
转至文本末尾 |
| gg |
移至文本开头 |
行位置插入
| Command |
Alias |
| A |
在一行的结尾处追加 |
| I |
在一行的开头处插入 |
| o |
在光标所在位置的下一行打开新行插入 |
| O |
在光标所在位置的上一行打开新行插入 |
tips1:10I*<Esc>先输入10,然后输入i,接着输入*号,最后按<Esc>
这样就可以在一行开头输入十个*
tips2:同样,5o###<Esc>先输入5,然后输入o,接着输入###,最后按<Esc>
这样就可以在下列5行中每一行开头插入###
插入
字符位置插入
| Command |
Alias |
| i |
在光标之前插入 |
| a |
在光标之后追加 |
删除
字符删除
| Command |
Alias |
| x |
删除光标所在处字符 |
| X |
删除光标所在前字符 |
单词删除
| Command |
Alias |
| dw |
删除到下一个单词开头 |
| de |
删除到本单词末尾 |
| dE |
删除到本单词末尾包括标点在内 |
| db |
删除到前一个单词 |
| dB |
删除到前一个单词包括标点在内 |
行删除
| Command |
Alias |
| dd |
删除一整行 |
| 3dd |
删除三整行 |
| D d$ |
删除光标位置到本行结尾 |
| d0 |
删除光标位置到本行开头 |
复制
行复制
| Command |
Alias |
| y^ |
复制至行首 |
| y$ |
复制至行尾 |
| yy |
复制整行 |
| yH |
从当前行复制到屏幕顶端 |
| yL |
从当前行复制到屏幕低端 |
单词和字符复制
| Command |
Alias |
| ynl |
向右复制n个字符 |
| ynh |
向左复制n个字符 |
| ynw |
向前复制n个单词 |
| ynb |
向后复制n个单词 |
修改
字符替换
| Command |
Alias |
| r |
单个字符替换 |
| R |
连续替换 |
| ~ |
更改大小写 |
单词修改
| Command |
Alias |
| cw |
从光标处修改到单词结尾 |
| cb |
从光标处修改到单词开头 |
行修改
| Command |
Alias |
| c$ |
从光标修改到本行末尾 |
| C |
功能同上 |
| c0 |
从光标修改到本行开头 |
| cc |
删除整行从头修改 |
| S |
功能同上 |
| s |
删除光标所在位置的字符,然后插入 |
合并行
多行合并成一行
AAAAA
BBBBB
CCCCC
合并为:
AAAAA BBBBB CCCCC
方法1: normal状态下 3J 其中的3是范围,可以是书签或者搜索位置等方式实现,J为合并
注: 如果改为3gJ的话,则合并时各行没有空白AAAAABBBBBCCCCC, 下面方法类似,不再重复这两种合并方式的区别.
方法2: 命令状态下 :1,3 join 或 :1,3 j
方法3: 传统一点的,替换换行符的方式,为避免最后一行也被换掉,范围缩小了,命令状态下 :1,2s/\n/ /
隔行合并
AAAAA
BBBBB
CCCCC
DDDDD
合并为:
AAAAA BBBBB
CCCCC DDDDD
方法1: 借用一下宏录制功能, normal状态下 qaJjq 实现录制, 然后在合适的区域重复执行n遍,这里2遍即可,normal状态下2@a
方法2: 命令状态下 :1,4g/^/ join 增加了g过滤后,合并变成了隔行处理
恢复
| Command |
Alias |
| u |
撤消上次命令 |
| U |
恢复整行 |
| ctrl+r |
重做 |
| . |
重复 |
| e! |
全文恢复 |
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。