- u/^R/U
- undo + <num> / g- / g+
前者用于知道跳转去向,后者用于不知道的
- :undolist
- :earlier 10s / 10h / 1m / :later
- :scriptnames 列出启动文件
- :help index :help CTRL_A :help i_CTRL_H :help 'number' 选项 :help E37 :help subject() :help -subject 命令行选项 :help +subject 编译特性
- fh VS. th
- zz zt zb
- CTRL_O and CTRL_I and :jumps
* ' 跳转前的光标位置 " 最后编辑的光标位置 [ 最后修改的开始位置 ] 最后修改的结束位置
- map Q gq
- :: vnoremap _g y:exe "grep /" . escape(@", '\/') . "/ .c.h"<CR>
- ftplugin/<filetype>.vim
- ftplugin/<filetype>_<name>.vim
- ftplugin/<filetype>/<name>.vim
- :options 可以让选项即时生效
- :set iskeyword& 恢复默认选项
- 4个选项 'printdevice' 'printheader' 'printfont' 'printoptions'
- "fyas as: 一个句子
- -R / view, -M
- CTRL-W H/J/K/L
- '*'对应于当前选择区 '+'对应于剪切版
- qc
- qC 向 c 中追加
- :write somefile
- :.write somefile 把当前行写入somefile
- :.,$write somefile 把从当前行到最后一行写入somefile
- :?^Chapter?,/^Chapter/-1s=grey=gray=g
- :.+3,$-5
- :'t,'b
- 如果知道想修改多少行,比如5,可以按 "5:",会得到:: :.,.+4
- :g+//+s/foobar/barfoo/g
- ~
- U
- u
- guw/gUw/g~w
- :r somefile/:read somefile/:$r somefile/:0r somefile
- :.write >> collection
- gqap ap代表一段
- 将光标放于第一行,!5Gsort<Enter>,代表对第1~5行作sort命令
- !!date<Enter> !!代表对当前行过滤, date的输出变为当前行
- :read !ls
- :0read !date -u 注意,!!替代当前行,:read插入行
- :write !wc 将文件传给wc,注意不能写成:write! wc
- vim -r somefile 或者vim -r ""
- 所有的文件里替换:: vim *.cpp qq :%s/<GetResp>/GetAnswer/ge :wnext q @q 999@q 加/ge中的e是因为,有e选项告诉:substitute找不到不报错,不会因报错而停止
- 反转行顺序:: :g/^/m 0
- 统计字数等,选中或不选(全文) gCTRL_G
- :set isk<Tab>,输入=再按<Tab>,就会把默认选项列出
- :edit som<Tab>,按<Tab>前进,按<CTRL_P>后退,看匹配总览,按<CTRL_D>,把它扩展成最长无歧义字符串,按<CTRL_L>
- 历史: q: / :history /something
- '0,回到上次退出vim的地方,'1'2..'9以此类推,看:marks
- 保存视图 :mkview :source
- :: CTRL-X CTRL-F 文件名 CTRL-X CTRL-L 整行 CTRL-X CTRL-D 宏定义 (包括包含文件里的) CTRL-X CTRL-I 当前文件以及所包含的文件 CTRL-X CTRL-K 字典文件内的单词 CTRL-X CTRL-T 同义词词典文件内的单词 CTRL-X CTRL-] 标签 CTRL-X CTRL-V Vim 命令行 CTRL-X CTRL-O Omni补全
- inputmod: 按CTRL_A插入上一次插入的文字
- inputmod: 按CTRL_Y插入上一行的那个字母, CTRL_E对应于光标下方
- CTRL_R输入寄存器里的值
- CTRL_V 9. CTRL_V 09. CTRL_V 009. CTRL_V x7f CTRL_V o123 CTRL_V u1234 CTRL_V u12345678
- CTRL_O 临时命令模式
- :a,bcenter / :a,bright
- :1left 5 :2,5left
- 变段为行:: :g/./,/^$/join
- 改动多个文件:: :args *.c :argdo %s/<x_cnt>/x_counter/ge | update
- 类似还有:windo, :bufdo,但做之前先检查一下会有多少文件受影响
- // 查找上一次的东东
很棒的技巧总结