vi vim替換字元

2021-10-11 23:23:42 字數 3233 閱讀 2871

vi/vim 中可以使用 :s 命令來替換字串。以前只會使用一種格式來全文替換,今天發現該命令有很多種寫法(vi 真是強大啊,還有很多需要學習),記錄幾種在此,方便以後查詢。

替換  :s/vivian/sky/ 替換當前行第乙個 vivian 為 sky

:s/vivian/sky/g 替換當前行所有 vivian 為 sky

:n,$s/vivian/sky/ 替換第 n 行開始到最後一行中每一行的第乙個 vivian 為 sky

:n,$s/vivian/sky/g 替換第 n 行開始到最後一行中每一行所有 vivian 為 sky

n 為數字,若 n 為 .,表示從當前行開始到最後一行

:%s/vivian/sky/(等同於 :g/vivian/s//sky/) 替換每一行的第乙個 vivian 為 sky

:%s/vivian/sky/g(等同於 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

可以使用 # 作為分隔符,此時中間出現的 / 不會作為分隔符

:s#vivian/#sky/# 替換當前行第乙個 vivian/ 為 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/

* ************************************

刪除文字中的^m

問題描述:對於換行,window下用回車換行(0a0d)來表示,linux下是回車(0a)來表示。這樣,將window上的檔案拷到unix上用時,總會有個^m.請寫個用在unix下的過濾windows檔案的換行符(0d)的shell或c程式。

· 使用命令:cat filename1 |

tr -d 「^v^m」 >newfile;

· 使用命令:sed -e 「s/^v^m//」 filename >outputfilename。需要注意的是在1、2兩種方法中,^v和^m指的是ctrl+v和ctrl+m。你必須要手工進行輸入,而不是貼上。

· 在vi中處理:首先使用vi開啟檔案,然後按esc鍵,接著輸入命令:%s/^v^m//。

· :%s/^m$//g

如果上述方法無用,則正確的解決辦法是:

· tr -d "r" dest

· tr -d "5" dest

· strings a>b

其它利用 :s 命令可以實現字串的替換。具體的用法包括:

:s/str1/str2/ 用字串 str2 替換行中首次出現的字串 str1

:s/str1/str2/g 用字串 str2 替換行中所有出現的字串 str1

:.,$ s/str1/str2/g 用字串 str2 替換正文當前行到末尾所有出現的字串 str1

:1,$ s/str1/str2/g 用字串 str2 替換正文中所有出現的字串 str1

:g/str1/s//str2/g 功能同上

從上述替換命令可以看到:g 放在命令末尾,表示對搜尋字串的每次出現進行替換;不加 g,表示只對搜尋

字串的首次出現進行替換;g 放在命令開頭,表示對正文中所有包含搜尋字串的行進行替換操作。

行首 :%s/^/your_word/

行尾 :%s/$/your_word/

按鍵操作:

注釋:ctrl+v 進入列編輯模式,向下或向上移動游標,把需要注釋的行的開頭標記起來,然後按大寫的i,再插入注釋符,比如"#",再按esc,就會全部注釋了。

刪除:先按v,進入visual模式,橫向選中列的個數(如"#"注釋符號,需要選中兩列),再按esc,再按ctrl+v 進入列編輯模式,向下或向上移動游標,選中注釋部分,然後按d, 就會刪除注釋符號(#)。

ps:當然不一定是shell的注釋符"#",也可以是"//",或者其他任意的字元;vim才不知道什麼是注釋符呢,都是字元而已。

使用替換命令:

在全部內容的行首新增//號注釋

:% s/^/\/\//g

在2~50行首新增//號注釋

:2,50 s/^/\/\//g

在2~50行首刪除//號

:2,50 s/^\/\///g

1. vim

vim 的安裝

yum install vim

2.游標的移動

用得最多的就是方向鍵上的 上下左右,和home 、end 鍵

還有就是字母鍵上的 hjkl

h : 表示向前

j:表示向下

k:表示向上

l : 表示向後

w和e : 游標會按乙個單詞的形式,往後移

b : 游標則會按乙個單詞的形式,往前移。

gg: 同時按兩下 小寫的gg,游標會移動到首行

gg:同時按兩下大定所gg,游標就會移動到末行

按下冒號:然後在冒號後面輸入數字,然後回車,游標就會到指定行數的行首。

3.vim的複製貼上

a . 複製選中的:

游標移動到你要選中的文字前或後,然後按一下v鍵

再移動游標,若是要複製就按一下y鍵,若是要剪下就按一上d鍵

然後,再把游標移動到你想要貼上的地方,按一下p鍵。

案例:b04f2753d1c4b828042763203ba8d374.png-wh_

按v後選中,然後再按y 複製

0b668c17b1489e693f72d98e96876f91.png-wh_

把游標移動到要貼上的地方 ,按p

3baad90a2ae4cd486364c821e0dea381.png-wh_

按v後,移動游標選中,

ca52208cb1babc6663d3eff527ef88e2.png-wh_

然後按d 剪下

2271a9d3d58679b5a8d316a1d1f24c4f.png-wh_

然後,移到游標到要貼上的地方按p

上面是單個複製或剪下

以行來複製或剪下

1行,就是把游標移動到當前行,然後,按yy就是複製 ,按dd,就是剪下 ,然後移動游標

到需要貼上的位置按p

n行, 就是 nyy 或 ndd p

這裡是,從游標往下數的n行。

以上就是vim的 移動 複製 剪下 貼上。

vi vim 字串替換

s s1 s2 用字串s2替換每行的第乙個字串s1 s s1 s2 g 用字串s2替換每行的所有字串s1 n,s s1 s2 用字串s2替換從n行開始到最後一行,每行的第乙個字串s1 n,s s1 s2 g 用字串s2替換從n行開始到最後一行的所有字串s1 s s1 s2 g 用字串s2替換從當前行...

vi vim 中替換字串

vi vim 中可以使用 s 命令來替換字串。s vivian sky 替換當前行第乙個 vivian 為 sky s vivian sky g 替換當前行所有 vivian 為 sky n,s vivian sky 替換第 n 行開始到最後一行中每一行的第乙個 vivian 為 sky 2,s v...

Linux環境下vi vim 進行字元替換

第一種方法 s en mn 替換當前行第乙個 en 為 mn s en mn g 替換當前行所有 en 為 mn n,s en mn 替換第 n 行開始到最後一行中每一行的第乙個 en 為 mn n,s en mn g 替換第 n 行開始到最後一行中每一行所有 en 為 mn n 為數字,若 n 為...