1.需要设置TERM值,一般会自动设置,如果随意改动会报错。
2.:e! 重新打开
3.~大小写转换
4.e和E, 对于单词来说,E认为空格类不属于一个单词;e认为字母数字下划线位一个单词。同:w,b。
5.U恢复一整行最开始编辑的时候
6.Y拖曳一整行,等于yy。与D,C不同。
7.句号.重复上一个命令
8.A在一行结尾插入,I在一行开头插入,O在上一行插入,s删除当前字符插入,S删除一整行插入
9.除了o和O的插入命令,都接受数值参数。例如:50iab[ESC],即输入50个ab。
10.J进行行合并
11.快速移动:^d向下移动半屏;^u向上移动半屏;^B向下移动一屏;^F向上移动一屏;^y向下移动一行,光标不变;^e向上移动一行,光标不变。
12.调整屏幕位置:z+【enter】,将光标所在行变为屏幕第一行。z。中心,z-底部。可以与数值配合:200z+【enter】,将200行变为首行
13.ctrl+l,重绘界面
14.H,将光标移动到行首;M,中;L,底;5H,光标移到屏幕顶端下5行。
15,+和【enter】将光标移动到下一行的第一个字符(忽略空格类),-移动到上一行的第一个字符。
16. ^光标移动到所在行第一个非空格类,n|,光标移动到所在行的n列。
17.(移动到当前句子的开头,)移动到下一句子的开头。用。!?标识一个句子,其后必须跟两个空格,或为句子的结束。{移动到当前段落的开头,}移动到下一段落的开头。18.fx将光标移动到本行下一个x的地方,x位任意字符。Fx,移动到上一个。tx,移动到本行下一个x的前一个字符。Tx上一个的前一个字符。;重复搜索,,反向搜索。可以和d配合使用dfx,删除到下一个x包括x。dtx删除到下一个x之前。
18.[ctrl]+g在文件底部显示文件信息,包括文件行数。
19.两个``会回到上一次使用G命令的位置,如果途中编辑了则回到上一次做编辑时的位置。’‘与其类似,不过回到那一行的开头。
20.打开文件是vim +n file,打开file光标在n行,vim +/pattern file。
21.vim -R file以只读方式打开,vim -r 打开保存的缓冲区文件列表。vim -r file 恢复缓冲区
22.mx将当前字符标记位x(x可为任何字符), 'x回到x所在的行,`x回到x。''回到上一个标记或上下文所在的确切行,``回到上一个标记或上下问所在的确切位置
23.利用缓冲区:“2p,恢复缓冲区2包含的内容(缓冲区命名最后一个位1其次为2.。。)。如果不确定哪一个缓冲区包含了要恢复的文本,不用一直输入“np。在p后利用重复命令。做恢复,缓冲区的编号会自动怎加,再加上u撤销恢复。例如:"1pu.u.u.
24.把文本拖曳到命名缓冲区:在拖曳命令前加“,"dyy 将当前行拖曳到缓冲区d中,”a7yy将后续7行拖曳到缓冲区a。放置的时候也要加“,”dP将缓冲区d放在光标前,“dp将缓冲区d放置在光标后。"a5dd删除五行放在缓冲区a中。
25.ex:3,18d删除3到18行;3,18m19将3到18行移动到19行后面;23,29co100将23到29行复制到100行后面;=列出文件的总行数;.=列出当前所在行的行号;/pattern/=列出第一次出现时的行号
26.行寻址符号。点号(.)表示当前行,$表示最后一行,%表示每一行。.,$d 20,.m$ %d %t$ 226,$m.-2 -,+t0 复制三行到首
27.搜索模式。/pattern/d /pattern/+d删除下一个包含pattern的行的下一行 .,/pattern/m23。
28.重新定义当前行的位置。 100,+5 d,此时+5表示当前行加5,而不是150. 100;+5 d表示100到105. /pattern/;+5
29.60,124g!/pattern/d寻找60到124中所有行不包括pattern的行,删除
30.ex下|可以分割命令,使得在:可以输入多个命令:1,3d | s/good/fuck s表示在当前行做替换
31.保存一部分文件:1,10w newfile;附加文件内容到已保存的文件:340,$w >> newfile
32./which。cwthat.搜索which改为that。n,继续搜索,n继续搜索,.改为that。
33.与上下文相关的替换:g/pattern/s/old/new/g。将包含pattern的行的new变为old. g/string/s//new
34.%s/\(that\) or \(this\)/\2 or \1/将that or this变为this or that。 %s/\(ab\)\1/god/将abab变为god
35.[:alnum:], [:alpha:], [:blank:]空格与制表符 [:cntrl:]控制字符 [:digit:] [:lower:] [:print:]包括空白 [:punct:]标点字符
36.在全局替换时,元字符只在搜索部分有特殊意义。反斜线在替换字符中和搜索字符中都是元字符。
37.在替换字符串中&会被匹配成搜索字符匹配出的完整文本:1,10/.*/(&)/。将1到10行加括号
38.\u或\l使替换字符冲中的下一个字符变成大写或小写。%s/yes,doctor/\uyes,/udoctor/。 %s/\(That\) or \(this\)/\u\2 or \l\1.将That or this 变为This or that
39.read可与其他命令结合,把命令结果放到文件中。:$r !date。将日期信息读到文件的最后一行
40.单词缩写 :ab fuck fuck every day! .每次将fuck写成一个单词是自动变为fuck every day。 unab 结束缩写。ab查看有哪些缩写。
41.vim查找后会高亮显示,去除方法:nohl. 映射一键:map <C-v> :nohl<Enter>
42.<<和>>命令:<<默认往左移动4个空格(set shiftwidth可以设置), 命令在程序缩版时有用:5>>
43.([{<,当光标位于其上时%会使光标跳转到其成对的闭括号上
44.z enter光标行至于顶,z . 光标行至于中, z -光标行至于低