vim基本命令之剪下複製貼上替換

2022-05-09 01:57:07 字數 3374 閱讀 5771

首先是剪下(刪除):

剪下其實也就順帶刪除了所選擇的內容,所以既可以當剪下命令用,也可以當刪除命令使用。

1 首先,可以在命令模式下輸入v進入自由選取模式,選擇需要剪下的文字後,按下d就可以進行剪下了。

2 其他命令模式下剪下命令:

3 dd:剪下當前行

4 ndd:n表示大於1的數字,剪下n行

5 dw:從游標處剪下至乙個單子/單詞的末尾,包括空格

6 de:從游標處剪下至乙個單子/單詞的末尾,不包括空格

7 d$:從當前游標剪下到行末

8 d0:從當前游標位置(不包括游標位置)剪下之行首

9 d3l:從游標位置(包括游標位置)向右剪下3個字元

10 d5g:將當前行(包括當前行)至第5行(不包括它)剪下

11 d3b:從當前游標位置(不包括游標位置)反向剪下3個單詞

12 dh:剪下從當前行至所顯示螢幕頂行的全部行

13 dm:剪下從當前行至命令m所指定行的全部行

14 dl:剪下從當前行至所顯示螢幕底的全部行

自己實踐時,還發現,單獨按d鍵,是剪下2行,按下nd,是剪下n+1行,不過一般使用還是推薦使用雙d(即dd)來執行。

對於複製命令,和剪下命令大體相似,就是把相應的d換成y即可:

首先,可以在命令模式下輸入v進入自由選取模式,選擇需要剪下的文字後,按下y就可以進行剪下了。

其他命令模式下剪下命令:

yy:複製當前行

nyy:n表示大於1的數字,複製n行

yw:從游標處複製至乙個單子/單詞的末尾,包括空格

ye:從游標處複製至乙個單子/單詞的末尾,不包括空格

y$:從當前游標複製到行末

y0:從當前游標位置(不包括游標位置)複製之行首

y3l:從游標位置(包括游標位置)向右複製3個字元

y5g:將當前行(包括當前行)至第5行(不包括它)複製

y3b:從當前游標位置(不包括游標位置)反向複製3個單詞

單獨按y是複製2行,ny是複製n+1行

至於貼上命令最簡單,在需要貼上的游標處按下p即可。

前面複製其他人的,後面也是

vi/vim 中可以使用 :s 命令來替換字串。該命令有很多種不同細節使用方法,可以實現複雜的功能,記錄幾種在此,方便以後查詢。 

: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/ 

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

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

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

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

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

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

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

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

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

5. 刪除文字中的^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 

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

。 tr -d \"\\r\" < src >dest 

。 tr -d \"\\015\" dest 

。 strings a>b 

6. 替換確認

我們有很多時候會需要某個字元(串)在文章中某些位置出現時被替換,而其它位置不被替換的有選擇的操作,這就需要使用者來進行確認,vi的查詢替換同樣支援

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

在命令後面加上乙個字母c就可以實現,即:s/vivian/sky/gc

顧名思意,c是confirm的縮寫

7. 其它 

利用 :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 放在命令開頭,表示對正文中所有包含搜尋字串的行進行替換操作

Vim 複製貼上剪下板

vim系統剪下板 暫存器 vim有多個剪貼簿,其中就包括了系統剪貼簿。使用命令 reg 可以看到各個剪貼簿的內容。其中 表示當前使用的剪貼簿,0 9 是歷史剪貼簿,如 reg registers dfssdfdsfdsfsd 0 12345678 j 1 dfssdfdsfdsfsd jf jsdf...

vim複製貼上的命令

from vim中無法使用ctrl c ctrl v進行複製貼上,用起來很不習慣 下面是vim複製貼上的基本命令 yy複製游標所在行整行。或大寫乙個y。2yy或y2y複製兩行。請舉一反三好不好!y 複製至行首,或y0。不含游標所在處字元。y 複製至行尾。含游標所在處字元。yw複製乙個word。y2w...

關於vim複製貼上命令總結

最近在使用vim,感覺很好很強大,但是在使用複製剪下貼上命令是,碰到了一些小困惑,網上找了一些資料感覺很不全,講的也不好,遂自己進行實踐並總結了。首先是剪下 刪除 剪下其實也就順帶刪除了所選擇的內容,所以既可以當剪下命令用,也可以當刪除命令使用。1 首先,可以在命令模式下輸入v進入自由選取模式,選擇...