在vi中,如果要刪除行尾的換行符,可以用如下方法
第一種情況:只刪除單行
如有檔案如下:
[fanzf@swserver ~/tmp]$ cat names.tmp
101 nate h.
102 john m.
104 cassy t.
106 mary l.
107 isaac c.
要將第一行和第二行合併,在命令列模式下可將游標移動到第一行,輸入j(john,大寫)即可;另外一種辦法也是在命令列模式下,游標也移動到第一行,輸入命令 :s//n//
執行效果如下
101 nate h. 102 john m.
104 cassy t.
106 mary l.
107 isaac c.
~第二種情況:刪除所有換行符
在命令列模式下,游標也移動到第一行,輸入命令 :%s//n//g
效果如下
101 nate h.102 john m.g104 cassy t.g106 mary l.g107 isaac c.g
在以上命令中,
s 是替換,
/ 是間隔符,
/n 是換行負,即要替換的原串,
/n後面的//,是要指替換成的串,在這裡表示無
兩條刪除命令的區別在於前面有無 % , 有%則在全文中替換
後面的g,是在整行中替換,由於每行最多只有乙個換行,所以g在這裡沒實際意義
摘自:在命令狀態下,在某一行上按"j"鍵將join下一行
j合併當前行和下一行
合併多行可以用.重複上一j命令或用nj合併從當前行起的n行
為什麼vi在文字的每行末尾都加上換行\n?
答案:因為文字每行末尾都應該加上換行。參考:
根據2023年iso發布的c語言標準c11(iso/iec 9899:2011)和c++標準c++11(iso/iec 14882:2011),每行末尾都應該換行。
windows換行為\r\n,unix為\n,mac為\r。
vi:新建檔案每行末尾都有\n。
二進位制檔案最後不需要換行,所以vi使用以下設定時檔案末尾不會加上換行。
set binary
set noeol
但是不建議這樣使用,因為set binary與set softtabstop衝突
vi如何顯示\n:
set binary會把\r顯示成ᶺm,而不顯示\n。注:~/.vimrc中set binary有效,vi開啟以後set binary無效。
set list會在每一行尾顯示乙個$,與\r或者\n都無關。
在VI中刪除行尾的換行符
在vi中,如果要刪除行尾的換行符,可以用如下方法 第一種情況 只刪除單行 如有檔案如下 fanzf swserver tmp cat names.tmp 101 nate h.102 john m.104 cassy t.106 mary l.107 isaac c.要將第一行和第二行合併,在命令列...
vi中換行符的替換問題
最近在公司用shell處理一些資料,發現vi的也能做一些簡單的指令碼的工作,常見的就是替換了。很多時候需要對換行符進行處理,無論是把某個符號換成換行符也好,還是把換行符換成其他符號。這裡面就有個方向的問題了,而vi中兩個方向的換行符是不一樣的。如果把a換成換行符 s a m g其中 m這個需要先ct...
換行符在textarea div pre中的區別
關於換行符,網上有許多說法,ie早期的瀏覽器是 r n,有的瀏覽器是 r,但很難找到確切的版本號。經過本人正則匹配測試,chrome firefox safari ie11都是 n,因此保險起見,若對換行符進行正則匹配,應當同時匹配 n,r以及 r n.值得一提的是 n r和 r n都有換一行的效果...