VIM常用用法高階

2021-04-13 12:54:26 字數 2448 閱讀 8621

這是別人整理的筆記,我刪掉了我知道的,只留下我不會的,原文

鏈結.vi 常用用法

說明,所有命令都不包括「」,如果是「"」(半形雙引號),則是乙個命令字元,請注意區分。

一.移動

(1). 按字移動游標的命令

在vi中,"字"有兩種含義:一種是廣義的字,它可以是兩個空格之間的任何內容。

如:、[、]、~、|、/、<、>、/等)均被當成是

乙個字。上面那一行中就包括」命令啟動一次擊鍵記錄,結果儲存到指定的暫存器中。暫存器名可以在a到z中任取乙個字母表示。

b. 輸入你的命令;

c. 鍵入「q」(後面不用跟任何字元)命令結束記錄;

d. 用「@」命令執行這個巨集;

2. 使用,修改暫存器

用來記錄操作的暫存器與你用來拷貝文字的暫存器是相同的。

使用方法:

g 移到行尾(注:這裡其實使用new命令開視窗更方便些)

o建立乙個空行

"np 拷貝n暫存器中的文字,你的命令將被拷到整個檔案的結尾

象修改普通文字一樣修改這些命令

0 回到行首

"ny$ 把正確的命令拷貝回n暫存器

dd 刪除臨時行

3. 擴充套件乙個暫存器

記錄到乙個大寫暫存器表示擴充套件命令到對應的小寫暫存器。

替換「:substitute」命令(可以簡寫為「:s」)使你可以在連續的行中執行字串替換。

格式:「:[range]s/old/new/[flags]」

說明如下:

1.用「n,m」表示從第n行到第m行;如果不指定行範圍,「:s」命令只作用在當前行上。

2.「.」表示當前行,「$」表示最後一行;「%」表示命令作用於全部行,即「1,$」。

3.可以用「+ -」號,比如「n+x,m-y」,nm可以是「.」和「$」。

4.使用可視模式來設定範圍;注意:命令是作用於行範圍的,而不是選中的範圍的。

5.預設情況下,命令只對一行中的第乙個匹配點起作用,要讓對行中所有匹配點起作用,需要加乙個「g(global,全域性)」標記;

其他標記:「p」(print,列印),用於在命令執行的時候列印出所有被修改的行;

「c」(confirm,確認),在每次替換前向你詢問是否需要替換。

4.插入檔案

「:read 」命令讀入檔案,插入當前行的下面;

「:nread 」命令用「n」指點插入行的行號,其中數字「0」表示檔案開頭,「$」表示檔案尾;

5.儲存部分行

要把一部分行寫入到檔案,可以使用「:write」命令;

在沒有指定範圍的時候它寫入全文,而指定範圍的時候它只寫入範圍指定的行;

如果這個檔案已經存在,而你一定要寫入,就加乙個嘆號;

小心:「!」必須緊跟著「:write」,中間不能留有空格,否則這將變成乙個過濾器命令;

「:write >>」用於往檔案中追加內容;

6.使用外部程式

命令「」用乙個外部程式對乙個文字塊進行過濾。

換句話說,它執行乙個由指定的外部命令,並用乙個文字塊作為輸入,

然後用該程式的輸出代替選中的文字塊。

7.從崩潰中恢復

方法1. 知道檔名,可以用「-r」選項啟動vim:「vim -r ***」;

方法2. 不知道檔名,進入原來的資料夾執行:「vim -r ""」;

方法3. 用「vim -r」列出所有它能找到的交換檔案,然後用方法1;

8.摺疊

摺疊命令:

zf f-old creation (建立摺疊)

zo o-pen a fold (開啟摺疊)

zc c-lose a fold (關閉摺疊)

zr 開啟巢狀摺疊(「zr」用於全部開啟)

zm 關閉巢狀摺疊(「zm」用於全部關閉)

9.在**間移動

使用標記

1:建立標記檔案:「ctags 」,或者「ctags -r」;

2:把游標移到要檢視的單詞的標記處,然後用命令;

3:用返回;

技巧:「ctrl-w ]」用新開視窗檢視;

10.在**間移動

「」 向上跳轉到乙個函式的結尾,「][」向下移動到乙個函式的結尾;

「[[」 向上跳轉到函式的開始,「]]」向下跳到結尾處;

注意:這四個命令要求「」符號在第一列;

「[的開始處,「[}」跳轉到當前**塊{}的結尾處;

「]」「[(」「[)」「](」「])」「[/」「]/」也有類似功能,只是匹配的是「()」「/*」

「[i」 命令查詢游標下的識別符號,不僅在當前檔案內查詢,還會在所有的包含檔案中查詢;

「[」 跳到第一項,可以是;

「n[」 跳到第n項;

「]i」 只列出游標下面的專案

「[d」 只查詢 "#define" 定義的巨集,

「]d」 只列出游標下面的專案

「gd」 只在當前檔案中查詢,並跳轉到被首次使用的地方;

「gd」 只在當前函式內查詢,注意,函式的開始符號「{」要求在第一列;

vim的常用用法

vi vim 是所有 unix linux 作業系統預設配備的編輯器。因其強大的功能和高效的操作,vi vim 也成為眾多 unix linux 使用者 管理員必須掌握並熟練使用的編輯工具之一。我在學習和使用linux的過程中,基本都是使用vim來寫程式,用得越多也用得越熟悉,也越發現vim的強大之...

CRUL常用用法

1 儲存http結果 curl o page.html 2設定 curl x 123.45.67.89 1080 o page.html 3 自動填寫使用者名稱密碼 curl u name passwd ftp ip port path file 4上傳檔案 curl t localfile u n...

grep awk sed常用用法

sed指令碼是乙個sed的命令清單,啟動sed時以 f選項引導指令碼檔名。sed對於指令碼中輸入的命令非常挑剔,在命令的末尾不能有任何空白或文字,如果在一行中有多個命令,要用分號分隔。以 開頭的行為注釋行,且不能跨行。7.小技巧 在sed的命令列中引用shell變數時要使用雙引號,而不是通常所用的單...