基本命令
:e filename 打开文件编辑
:w 保存
:q 退出Vim
:w! 保存文件退出Vim
搜索(正则表达式的应用)
/word 从顶部往底部搜索word
?word 从底部往顶部搜索word
/jo[ha]n 搜索john或joan
/\< the 搜索the或theatre 或then(只要是the开头就行)
/the\> 搜索the或breathe(只要是the结尾就行)
/\< the\> 只搜索the
/\< ....\> 搜索长度为4个字符的字符串
/\<fred\> 搜索fred,alfred 或者 frederick都不能匹配
/fred\|joe 搜fred或joe
/\<\d\d\d\d\> 搜索4位数字的字符串
/^\n\{3} 查找3个空行的地方
:bufdo /searchstr/ 在所有打开的(缓冲区)文件中搜索searchstr
:bufdo %s/pattern/replace/ge | update 所有文件中替换
替换(g->global,c->confirm,i->ignore)
:%s/old/new/g 用new替换文件中出现的所有old
:%s/old/new/gc 与上面这条的作用一样,只不过每替换一个就要确认一次
:2,35s/old/new/g 用new替换2到35行的new
:5,$s/old/new/g 替换4行之后所有old
:%s/^/hello/g 用hello替换所有行首,相当于在行首插入hello
:%s/$/Harry/g 在所有行末加入Harray
:%s/onward/forward/gi 用forward替换onward,忽略大小写
:%s/ *$//g 删除所有行末的空格
:%s/^ *//g 删除所有行首的空格
g/pattern/cmd
这个g命令式在文中查找pattern,然后对找到的这些行执行cmd命令;注意:cmd应用的范围是找到行
cmd命令有很多,比如d,删除命令;c,删除并且进入insert模式;s,替换命令,这个用的多,例如g/test/s/aaa/bbb/ 在文中查找包含test的行,并且把该行中的aaa替换成bbb,也可以把aaa省略,
g/test/s//bbb/,这时候表示的是把test替换成bbb指令
:g/string/d 删除所有出现有string的行
:v/string/d 删除所有不包含string的行(看此处的意思是v命令与g命令正好相反)
:s/Bill/Steve/ 用Steve替换当前行首次出现的Bill
:s/Bill/Steve/g 用Steve替换当前行出现的所有Bill
:%s#<[^>]\+>##g 删除所有HTMl标签,保留文本dit 保留当前行html标签,删除文本
:%s/^\(.*\)\n\1$/\1/ Delete lines which appears twice
Ctrl+a 递增当前光标出的数字
Ctrl+x 递减当前光标处的数字
ggVGg? 将全文转换为rot13码,这是一种简单暗号语Rot13,重复执行此命令回复原样
大小写(这个挺有用的,u->小写,U->大写)
Vu 当前行转换为小写
VU 当前行转换为大写,当然对中文无效
g~~ 大小写置换
vEU 选择性的转换为大小,从光标起始处到
vE~ 也是将选中的大写转小写,小写转大写。
ggguG 全文小写,其实我们可以拆分3个命令gg/gu/来记忆
:set ignorecase 搜索时忽略大小写