ctrl + w + h 光标 focus 左侧树形目录 ctrl + w + l 光标 focus 右侧文件显示窗口 ctrl + w + w 光标自动在左右侧窗口切换 #!!! ctrl + w + r 移动当前窗口的布局位置
o 在已有窗口中打开文件、目录或书签,并跳到该窗口 go 在已有窗口 中打开文件、目录或书签,但不跳到该窗口 t 在新 Tab 中打开选中文件/书签,并跳到新 Tab T 在新 Tab 中打开选中文件/书签,但不跳到新 Tab i split 一个新窗口打开选中文件,并跳到该窗口 gi split 一个新窗口打开选中文件,但不跳到该窗口 s vsplit 一个新窗口打开选中文件,并跳到该窗口 gs vsplit 一个新 窗口打开选中文件,但不跳到该窗口 ! 执行当前文件 O 递归打开选中 结点下的所有目录 x 合拢选中结点的父目录 X 递归 合拢选中结点下的所有目录 e Edit the current dif
P 跳到根结点 p 跳到父结点 K 跳到当前目录下同级的第一个结点 J 跳到当前目录下同级的最后一个结点 k 跳到当前目录下同级的前一个结点 j 跳到当前目录下同级的后一个结点
C 将选中目录或选中文件的父目录设为根结点 u 将当前根结点的父目录设为根目录,并变成合拢原根结点 U 将当前根结点的父目录设为根目录,但保持展开原根结点 r 递归刷新选中目录 R 递归刷新根结点 m 显示文件系统菜单 #!!!然后根据提示进行文件的操作如新建,重命名等 cd 将 CWD 设为选中目录
# -> 光标下反向搜索关键词 (search the word under cursor backward) * -> 光标下正向搜索关键词 (search the word under cursor forward) / -> 向下搜索 (search forward) ? -> 向上搜索 (search back)
/a* -> 这个会搜到 a aa aaa /\(ab\)* -> 这个会搜到 ab abab ababab /ab\+ -> 这个会搜到 ab abb abbb /folers\= -> 这个会搜到 folder folders /ab\{3,5} -> 这个会搜到 abbb abbbb abbbbb /ab\{-1,3} -> 这个会在abbb中搜到ab (will match ab in abbb) /a.\{-}b -> 这个会在axbxb中搜到axb (match ‘axb’ in ‘axbxb’) /a.*b -> 会搜索到任何a开头后面有b的 (match a*b any) /foo\|bar -> 搜索foo或者bar,就是同时搜索2个词 (match ‘foo’ or ‘bar’) /one\|two\|three -> 搜索3个词 (match ‘one’, ‘two’ or ‘three’) /\(foo\|bar\)\+ -> 搜索foo, foobar, foofoo, barfoobar等等 (match ‘foo’, ‘foobar’, ‘foofoo’, ‘barfoobar’ … ) /end\(if\|while\|for\) -> 搜索endif, endwhile endfor (match ‘endif’, ‘endwhile’, ‘endfor’) /forever\&... -> 这个会在forever中搜索到”for”但是不会在fortuin中搜索到”for” 因为我们这里给了&...的限制 (match ‘for’ in ‘forever’ will not match ‘fortuin’) /"[^"]*" 搜索双引号括起来的东西(包括引号) /\d\u\{3}\d\{3} 搜索类似"1MGU103"的车牌
:help /[] –> 特殊的定义的,可以在vim中用用help来看 (everything about special) :help /\s –> 普通的也可以直接看一下 (everything about normal)
替换
1 2 3 4
%s/abc/def/ -> 替换abc到def (substitute abc to def) %s/abc/def/c -> 替换abc到def,会每次都问你确定(substitute on all text with confirmation (y,n,a,q,l)) 1,5s/abc/def/g -> 只替换第一行到第15行之间的abc到def (substitute abc to def only between line 1 to 5) 54s/abc/def/ -> 只替换第54行的abc到def (only substitute abc to def on line 54)
global
一般用法 g/pattern/command
1 2 3
:g/abc/p -> 查找并显示出只有abc的行 (only print line with “abc” ) :g/abc/d -> 删除所有有abc的行 (delete all line with “abc”) :v/abc/d -> 这个会把凡是不是行里没有abc的都删掉 (delete all line without “abc”)
filter
esc模式下!{motion}{filter} 解释: 对动作涉及的行执行外部命令
1 2 3
!5Gsort -> 从光标下开始执行sort,一共执行5行,就是说我只要sort5行而已 (this will sort the text from cursor line down to 5 lines) !Gsort -k3 -> 可以直接代sort的参数,我要sort文字中的第三段 (sort to the end of file by column 3) !! -> 值过滤当前的这行 (filter the current line)
m{a-zA-Z} -> 保存书签,小写的是文件书签,可以用(a-z)中的任何字母标记。大写的是全局 书签,用大写的(A-Z)中任意字母标记。(mark position as bookmark. when lower, only stay in file. when upper, stay in global) '{a-zA-Z} -> 跳转到某个书签。如果是全局书签,则会开启被书签标记的文件跳转至标记的行 (go to mark. in file {a-z} or global {A-Z}. in global, it will open the file) '0 -> 跳转入现在编辑的文件中上次退出的位置 (go to last exit in file) " -> 跳转如最后一次跳转的位置 (go to last jump -> go back to last jump) '" -> 跳转至最后一次编辑的位置 (go to last edit) g'{mark} -> 跳转到书签 (jump to {mark}) :delm{marks} -> 删除一个书签 (delete a mark) 例如:delma那么就删除了书签a :delm! -> 删除全部书签 (delete all marks) :marks -> 显示系统全部书签 (show all bookmarks))
二进制显示
1 2
:%!xxd -> 更改当前文件显示为2进位 (change display to binary) :%!xxd -r -> 更改二进位为text格式 (convert back to text)