善用vi編輯器

2021-04-15 11:02:08 字數 3251 閱讀 9344

vi是類unix作業系統中使用極為廣泛的文字編輯器之一。無論是unix、solaris或linux都預設提供這個工具。可以說只要熟悉了vi,在任何一種類unix的作業系統平台上都可以自如地進行文字編輯。關於vi的基本用法的資料有很多,本文的目的不是重複這些基本的用法,而是想給初步掌握vi基本用法的人提供一些實用技巧,使之能更快捷、高效地利用vi編輯檔案。

vi有命令模式和插入模式之分。 vi啟動後就處於命令模式。在命令模式下,可以隨意移動游標、進行複製和貼上文字等操作。利用「a」、「i」、「c」、「c」、「o」和「o」等命令可以從命令模式切換到插入模式。在插入模式下,可以輸入文字,按esc鍵切換回命令模式。為了區別不同模式下的命令,本文在介紹時會註明是何種模式下的操作。

另外,本文的所有操作都是在red hat 9.0所帶的vim中進行。本文介紹的各種技巧多數在各種vi版本中也都是可行的。

加密和解密

加密和解密檔案

在命令模式輸入「:x」命令,接著輸入密碼、確認輸入密碼,最後輸入「:wq」命令儲存退出。檔案就已經被加密了。

經過上面方法加密後的檔案變成密文檔案。要閱讀原來的明文,則在開啟檔案後,會提示使用者輸入密碼。

如果密碼輸入正確,就能看到原來的明文。另外可以看到,在最後的狀態行上有此檔案已被加密的提示。

取消加密

取消加密的方法很簡單。在命令模式輸入「:x」命令,首先會提示輸入密碼,這時直接敲回車鍵。接下來在提示重複輸入密碼時也直接敲回車鍵,最後輸入「:wq」命令儲存退出。這樣檔案的加密就被取消了。

注意,以上加密方法是執行在red hat linux 9.0上的vim中。在其它平台可能略有差異,請以實際平台或版本的幫助為準。

替換操作

經常用到的一些簡單替換命令有:

◆ s 將當前字元替換為乙個或多個字元,例如5 s 表示將從當前字元開始的5個字元替換為乙個或多個字

符;◆ s 將當前行替換為乙個或多個字元;

◆ r 單個字元替換。

文字格式轉換

將dos格式文字轉成unix格式文字,命令如下:

:1,$s/^m//g

其中^m是同時ctrl+v+m按出來的,表示回車。

在行首尾新增字串

用下列命令在文字每行的行首新增字串「newstring」,請注意空格的存在。

:g/^/s//newstring/g :%s/^/newstring/g

用下列命令在每行的行尾新增字串「newstring」:

:g/$/s//newstring/g :%s/$/newstring/g

從文字的第3行至最後一行的行首全部插入字串「newstring」:

:3,$s/^/newstring/

在整個檔案中替換

在整個檔案中替換特定字串,所用的命令如下:

:%s/old_string/new_string/g

如果僅將檔案中的第3行到第7行中的「old_string」替換成「new_string」,那麼使用下列命令:

:3,7s/old_string/new_string/

注意,其中「s」為表示替換動作,「%」表示所有行,「g」表示全文,「^」表示行首,「$」表示行尾

。助力程式設計

語法加亮

在vi中編寫程式,如果為了方便想開啟語法加亮功能,只需在命令模式下輸入「:syntax on」即可。同理可知,如果想關閉語法加亮功能,就在命令模式下輸入「:syntax off」。

快速檢視函式幫助

在用vi閱讀和編寫程式(主要是指c或c++程式)時,如果需要了解某個函式的具體功能,可以將游標移到該函式上,然後在命令模式下輸入「k」,就可以調動「linux programmer's manual」中對此函式的man幫助。

標記定位

首先開啟乙個源**檔案,將游標移到想做標記的位置。假如做乙個名為「debug1」的標記,那麼使用者可在命令模式下輸入做標記的命令「mdebug1」,然後敲入回車鍵,乙個名為「debug1」的標記就做好了。

接下來使用者可以隨意將游標移到其它的位置,當在命令模式下輸入「`debug1」後,就能快速回到「debug1」的標記所在行的行首。

「ctags」命令

$ ctags *.c

上面一條命令將為當前目錄下的.c檔案生成tags檔案,然後使用「ta 函式名」命令來快速開啟相應函式所在檔案,並將游標定位在對應函式的開頭。

自動對齊

在命令模式下使用「:set ai」命令可以讓程式中各行自動對齊。

顯示匹配

在程式設計中{}、、()常常是成對出現的,而且常常有多層的巢狀,很容易遺漏和失誤。所以下面的這個技巧非常有用。在命令模式下使用「:set **」命令會在使用者敲)、]、}時顯示出對應匹配的{、[、(來。

縮寫文字

在程式設計中常常要輸入一些重複且很長的資訊,比如較長的名詞和公司資訊等,這時可以用vi的縮寫功能。它可以將乙個很長的詞用乙個很短的縮寫來代替。比如乙個較長的url,可以給它乙個縮寫,在命令模式下使用「:ab myurl http://www.mykms.org/kms/myproject/index.php?id=0023」,然後在插入模式下輸入「myurl」 後,「myurl」就會自動變成剛才定義的那個長的url。另外,在插入模式下輸入「:una myurl」,則是取消「myurl」這個縮寫。

set選項

使用「:set」可以設定vi的環境變數。vi的環境變數有很多。使用「:set all」可以顯示所有環境變數。

使用「:set 變數名及引數」可以設定對應的環境變數。

下面的命令可顯示行號:

:set number

下面的命令可將檔案設為唯讀:

:set readonly

下面的命令使vi在「:n」和「:!」命令之前都自動儲存檔案:

:set autowrite

下面的命令顯示使用者處在什麼模式下:

:set showmode

同理,「:set noshowmode」就是關閉此顯示。

vi環境變數還有很多。了解它們,將給使用者使用vi帶來更多方便。使用者可以通過vi的聯機幫助查到對應的環境變數的詳細作用。

使用巨集vi 的巨集提供了更強大的功能,使用者可以根據自己的需要來定製自己的巨集,然後通過巨集來完成事先定義好的一整套操作。用「map」來定義乙個巨集,用「unmap」 來刪除。在熟悉了vi的基本命令後,將這些命令組合起來就能完成複雜的工作。如果再將這些命令的組合定義成巨集的話,就可以方便使用者經常性地呼叫了。這是乙個非常強大的功能,建議大家多多使用。

總結vi是類unix作業系統上常用的預設編輯器。了解了vi,使用者就能利用它高效地編輯檔案。但是學習vi的過程很長,因為它的功能很多。不過它確實是乙個值得花時間來學習的工具。所謂「工欲善其事,必先利其器」,希望大家都能學好vi,善用這一文字編輯的利器。

(二)vi編輯器 字元編輯器

vi編輯器工作模式 分為編輯模式 插入模式 向檔案中寫資料。模式之間切換 i 進入編輯模式,游標在當前位置 a 進入編輯模式,游標向後移動乙個字元 鍵 1 儲存 w 2 強制儲存 w 3 退出 q 4 強制退出 q 5 儲存並退出 wq 或 x 6 強制儲存並退出 wq 或 x 7 貼上 p 8 複...

檔案編輯器 vi

目錄 4 關於本文 5 後記 6 參考文件 7 相關文件 正文 1 關於文字編輯器 文字編輯器有很多,比如圖形模式的gedit kwrite openoffice 文字模式下的編輯器有vi vim vi的增強版本 和nano vi和vim是我們在linux中最常用的編輯器。我們有必要介紹一下vi v...

檔案編輯器 vi

摘要 vi 編輯器是最常用的文件建立和編輯工具,初學者應該學會簡單應用vi 學會在vi 中做簡單的修改 刪除 插入 搜尋及替換作業 如果您是新手,不妨看看本文,或許這篇文件能讓您在最短的時間內學會vi的簡單操作 目錄1 關於文字編輯器 2 vi 編輯器 3 vi 編輯器的使用方法 3.1 如何呼叫v...