vim把字符串替換成換行符是什么命令

vim字符串替換命令substitute是Vim常用命令之一(簡寫s)。

通過指定將被替換的源字符串以及目標(biāo)字符串,以及替換操作的執(zhí)行范圍等信息,可以指示Vim在特定范圍進(jìn)行字符串匹配和替換操作。

下面我們介紹vim把字符串替換成換行符的命令

在某些場景下,需要將當(dāng)前文件中的某些語句進(jìn)行換行顯示,以達(dá)到對文件排版等目的。

例如我們希望將如下的文本內(nèi)容進(jìn)行逐句按行顯示:

Vim教程網(wǎng)(https://vimjc.com)是由一個小女生苦苦支撐和維護(hù)的Vim相關(guān)網(wǎng)站。雖然一直沒什么人氣,但是她仍然堅持更新了6年的博文。目前已經(jīng)寫了100+篇vim命令和技巧相關(guān)的文章。希望能給有需要的同學(xué)提供一點點幫助。

如果您是一個Vim入門者,您最先想到的命令可能是在Vim命令行模式下執(zhí)行替換命令::%s/。/。\n/g。不過很遺憾,這條命令并不會如你所愿,并不能將當(dāng)前文件中的所有“?!碧鎿Q成換行的效果。

這里主要涉及到Vim下的換行符以及Vim替換命令。

首先,Vim替換命令substitute的語法格式為::[range]s/源字符串/目標(biāo)字符串/[option];其次,換行符在替換命令的 源字符串 和 目標(biāo)串 分別具有不同的含義。

替換命令的 源字符串 部分,用于指定搜索目標(biāo),要在替換命令的源字符串部分匹配行尾,需要使用 \n;

替換命令的 目標(biāo)字符串 部分,用于指定要替換出的目標(biāo),如果要通過替換命令插入新行,需要使用 \r。

因此,對于本文舉例的文本使用以下Vim命令?

:%s/。/。\r/g?

可對其實現(xiàn)逐句按行顯示的效果,如下所示。

Vim教程網(wǎng)(https://vimjc.com)是由一個女生苦苦支撐和維護(hù)的Vim相關(guān)網(wǎng)站。

雖然一直沒什么人氣,但是她仍然堅持更新了6年的博文。

目前已經(jīng)寫了100+篇Vim命令和技巧相關(guān)的文章。

希望能給有需要的同學(xué)提供一點點幫助。

反之,如果需要將上面逐句按行顯示的文本轉(zhuǎn)換成本文開頭描述的文本,可以使用下面的Vim命令

:%s/。\n/。/g。

vim替換新行

一句話總結(jié)上述內(nèi)容就是:對于Vim替換命令s來說,如果要vim替換掉換行符,需使用 \n 作為搜索串;如果要vim替換字符串生成新行,請使用 \r 作為目標(biāo)串。

vim刪除換行

可以用以下命令刪除換行符:

:%s/\n//g

可以用以下命令刪除DOS文件中的回車符“^M”:

:%s/\r//g

可以用以下命令轉(zhuǎn)換DOS回車符“^M”為真正的換行符:

:%s/\r/\r/g

可以用以下命令刪除行尾的空格以及DOS回車符。它沒有使用“/”字符作為替換命令各個參數(shù)間的分隔符,而是使用了“#”字符。命令還使用了“\?”正則表達(dá)式,用來匹配它前面出現(xiàn)的字符0次或1次。

:%s#\s*\r\?$##

可以用以下命令刪除三行空行:

:%s/^\n\{3}//

可以用以下命令將連續(xù)的兩個空行替換成一個空行:

:%s/\n\n/\r/g

vim刪除空行

:g/^s*$/d

簡單解釋一下:

g :全區(qū)命令

/ :分隔符

^s*$ :匹配空行,其中^表示行首,s表示空字符,包括空格和制表符,*重復(fù)0到n個前面的字符,$表示行尾。連起來就是匹配只有空字符的行,也就是空行。

/d :刪除該行

vim刪除行尾空格:

:%s= *$==

該命令全局查找文本文件的行尾空格并刪除。

解釋:

%s全局查找替換

=為%s命令的分隔符,如果把=換為/,則該命令可以寫為:%s/ *$//

” *$”, $表示行尾,*匹配前面0個到n個字符,*前面是空格,因此此正則表達(dá)式匹配行尾的0個到n個字符。

==,分隔符沒有中間沒有內(nèi)容,表示刪除匹配空格, 在這里表示刪除行尾空格。

vim換行方式

在早期的打印機(jī)時代,開始新的一行要占用兩個字符的時間。如果到了一行的結(jié)尾處,你要快速回到新的一行的開頭,需要打印針頭在紙面上飛快地掠過,常常會在紙面上留下污點。解決這個問題的辦法就是,用兩個字符:一個字符<Return>來移到第一列,另一個字符<Line feed>來新增一行。計算機(jī)產(chǎn)生以后,存儲較為昂貴,在如何解決回車換行這個老問題上,人們產(chǎn)生了不同的意見。UNIX人認(rèn)為在到達(dá)一行的結(jié)尾時新增一行<Line feed> (LF),而Mac人則認(rèn)同<Return> (CR)的解決辦法,MS則堅持古老的<Return><Line feed> (CRLF)的方法。這就意味著如果你將一個文件從一個系統(tǒng)轉(zhuǎn)移到另一個系統(tǒng),就面臨著回車換行的問題。而Vim編輯器則會自動的認(rèn)出這種文件格式方面的區(qū)別,并做出相應(yīng)處理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,737評論 0 5
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,356評論 0 10
  • 自我總結(jié)篇: 對文件的操作技巧: vim文件一個有三種狀態(tài):命令(瀏覽/輸入命令轉(zhuǎn)變末行模式),文本(添加/編輯/...
    小知大知閱讀 891評論 0 0
  • 本文摘自https://www.cnblogs.com/yangjig/p/6014198.html 感謝原作者的...
    榮子3507閱讀 393評論 1 0
  • vim 選擇文本,刪除,復(fù)制,粘貼 文本的選擇,對于編輯器來說,是很基本的東西,也經(jīng)常被用到,總結(jié)如下: v 從光...
    超__越閱讀 1,342評論 0 0

友情鏈接更多精彩內(nèi)容