歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 善用vi編輯器

善用vi編輯器

日期:2017/2/27 9:33:23   编辑:更多Linux
  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”命令     在閱讀和編寫C或C++程序時,可用“ctags”命令對當前目錄下的C源程序進行掃描。命令如下:     $ ctags *.c    上面一條命令將為當前目錄下的.c文件生成tags文件,然後使用“ta 函數名”命令來快速打開相應函數所在文件,並將光標定位在對應函數的開頭。     自動對齊     在命令模式下使用“:set ai”命令可以讓程序中各行自動對齊。     顯示匹配     在編程中{}、[]、()常常是成對出現的,而且常常有多層的嵌套,很容易遺漏和失誤。所以下面的這個技巧非常有用。在命令模式下使用“:set sm”命令會在用戶敲)、]、}時顯示出對應匹配的{、[、(來。     縮寫文本     在編程中常常要輸入一些重復且很長的信息,比如較長的名詞和公司信息等,這時可以用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,善用這一文本編輯的利器。




Copyright © Linux教程網 All Rights Reserved