vim之 命令行操作

1 字符串替换

俩种方法

:g/search-string/s//replace-string/g

第一个g:是所有的行,:/search-string/s//replace-string/g 会替换光标所在行的所有列
search-string:是被替换的字符串,
s是替换的意思
replace-string:是要替换的字符串
最后一个g:是所有的列,:g/search-string/s//replace-string 会替换每行的第一个search-string


还有一种方法,本文件内:
:[addr]s/search-string/replace-string/[option]

addr 表示检索范围,%表示整个文件,同“1,$";“. ,$"从当前行到文件尾;"n,m"从第n行到m行

[option] : 表示操作类型,g 表示全局替换;c 表示进行确认;p 表示替代结果逐行显示(Ctrl + L恢复屏幕);省略option时仅对每行第一个匹配串进行替换;

s/OLD/NEW 替换命令所在行的第一个匹配串

n,ms/OLD/NEW/g 替换两行(n和m表示行号,第n行到第m行)之间的匹配串

2 多行注释掉

        ctrl+v 之后,然后按j或者k,选择要注释的多行,然后按 I (注意大写),进入插入模式,然后写下//,然后按下ESC即可。


一些例子:

#将That or this 换成 This or that
:%s/\(That\) or \(this\)/\u\2 or \l\1/
—-
#将句尾的child换成children
:%s/child\([ ,.;!:?]\)/children\1/g
—-
#将mgi/r/abox换成mgi/r/asquare
:g/mg\([ira]\)box/s//mg//my\1square/g <=> :g/mg[ira]box/s/box/square/g
—-
#将多个空格换成一个空格
:%s/ */ /g
—-
#使用空格替换句号或者冒号后面的一个或者多个空格
:%s/\([:.]\) */\1 /g
—-
#删除所有空行
:g/^$/d
—-
#删除所有的空白行和空行
:g/^[ ][ ]*$/d
—-
#在每行的开始插入两个空白
:%s/^/> /
—-
#在接下来的6行末尾加入.
:.,5/$/./
—-
#颠倒文件的行序
:g/.*/m0O <=> :g/^/m0O
—-
#寻找不是数字的开始行,并将其移到文件尾部
:g!/^[0-9]/m$ <=> g/^[^0-9]/m$
—-
#将文件的第12到17行内容复制10词放到当前文件的尾部
:1,10g/^/12,17t$
~~~~重复次数的作用
—-
#将chapter开始行下面的第二行的内容写道begin文件中
:g/^chapter/.+2w>>begin
—-
:/^part2/,/^part3/g/^chapter/.+2w>>begin
—-
:/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$

转载于:http://www.result-search.com/m/lyman/190.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章