-
:%s/old/new/gc,:1,$s/old/new/gc,:10,100s/old/new/gc -
:g/pattern/s/old/new/g,:g会影响文件的每一行,末尾的g表示会影响一行中的每个模式,第一个g表示命令对文件中所有行起作用,pattern用于识别发生替换的行,遇到包含pattern的行,ex将old替换成new,最后的g表示在那一行中对每一个匹配模式进行替换,若用于搜索的模式和要进行替换的模式相同,不必重复输入:g/pattern/s//new/g -
g/pattern/d满足搜索模式的行删除 -
ex命令
d(delete),m(move),co/t(copy) -
:3,18d,:20,30m43讲20-30行移动到43行之后,:20,30co100(:20,30t100)将20-30行复制到100行后 -
:=列出文件总行数,:.=列出当前行行号,:/pattern/=列出pattern第一次出现时的行号 -
:.,$d,:20,.m$,:%d,%t$,.,.+20d删除当前行和从当前行到20行之间的文本 -
22,$m.-2将22行到末尾的行移动到当前行两行之前 -
.,+20#显示行号 -
-,+t0复制3行(光标上面一行到光标下面一行)到文件开头 -
搜索模式
-
:/pattern/d -
:/pattern/+d删除下一个包含pattern的行的下一行 -
:/pattern1/,/pattern2/d从第一个包含pattern1的行删除到第一个包含pattern2的行 -
.,/pattern/m23从当前行到第一个包含pattern的行之间的文本放到23行之后 -
:100;+5p用分好代替逗号时,第一个行地址会被当做光标当前地址 -
:/pattern/;+10p显示出包含制定模式的下一行以及后续的10行 -
:g/pattern/p -
:20,30g/pattern/p -
合并ex命令,
1,3d|s/their/they/删除第一行到第三行,并在当前行做替换,即原来的第4行,1,5m10|g/pattern/nu讲第一行到第五行移动到10行之后,接着显示所有包含pattern的行,包括行号 -
set wrapmargin,ignorecase,wrapscan,magic,autoindent,showmatch,tabstop,shiftwidth,number,list/autowrite -
ab hi hellohi是hello的缩写,unab hi -
od -c按下特殊符号后查看功能键内容 -
zA,zC,zD,z0折叠命令:set foldenable,:set foldmethod=syntax -
:tabnew filename, :tabclose, :tabonly -
:syntax enable, :syntax on, :set syntax=sh -
:coloscheme desert -
:highlight comment, :highlight identifier, :highlight identifiers guifg=red -
set runtimepath+=~/.vim/after/syntax