佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > vi編輯器使用技巧

vi編輯器使用技巧

熱門標(biāo)簽:網(wǎng)站建設(shè) 外呼線路 人工座席 記事本 呼叫中心解決方案 太平洋壽險(xiǎn)電話營銷 呼叫外包 IT外包

'vi是類Unix操作系統(tǒng)中使用極為廣泛的文本編輯器之一。無論是Unix、Solaris或Linux都默認(rèn)提供這個(gè)工具??梢哉f只要熟悉了vi,在任何一種類Unix的操作系統(tǒng)平臺上都可以自如地進(jìn)行文本編輯。關(guān)于vi的基本用法的資料有很多,本文的目的不是重復(fù)這些基本的用法,而是想給初步掌握vi基本用法的人提供一些實(shí)用技巧,使之能更快捷、高效地利用vi編輯文件。



vi有命令模式和插入模式之分。vi啟動(dòng)后就處于命令模式。在命令模式下,可以隨意移動(dòng)光標(biāo)、進(jìn)行復(fù)制和粘貼文本等操作。利用“a”、“i”、“c”、“C”、“O”和“o”等命令可以從命令模式切換到插入模式。在插入模式下,可以輸入文本,按Esc鍵切換回命令模式。為了區(qū)別不同模式下的命令,本文在介紹時(shí)會注明是何種模式下的操作。

另外,本文的所有操作都是在Red Hat 9.0所帶的vim中進(jìn)行。本文介紹的各種技巧多數(shù)在各種vi版本中也都是可行的。

加密和解密

加密和解密文件

在命令模式輸入“:X”命令,接著輸入密碼、確認(rèn)輸入密碼,最后輸入“:wq”命令保存退出。文件就已經(jīng)被加密了。

經(jīng)過上面方法加密后的文件變成密文文件。要閱讀原來的明文,則在打開文件后,會提示用戶輸入密碼。如果密碼輸入正確,就能看到原來的明文。另外可以看到,在最后的狀態(tài)行上有此文件已被加密的提示。

取消加密

取消加密的方法很簡單。在命令模式輸入“:X”命令,首先會提示輸入密碼,這時(shí)直接敲回車鍵。接下來在提示重復(fù)輸入密碼時(shí)也直接敲回車鍵,最后輸入“:wq”命令保存退出。這樣文件的加密就被取消了。

注意,以上加密方法是運(yùn)行在Red Hat Linux 9.0上的vim中。在其它平臺可能略有差異,請以實(shí)際平臺或版本的幫助為準(zhǔn)。

替換操作

經(jīng)常用到的一些簡單替換命令有:

◆ s 將當(dāng)前字符替換為一個(gè)或多個(gè)字符,例如5 s 表示將從當(dāng)前字符開始的5個(gè)字符替換為一個(gè)或多個(gè)字符;

◆ S 將當(dāng)前行替換為一個(gè)或多個(gè)字符;

◆ r 單個(gè)字符替換。

文本格式轉(zhuǎn)換

將DOS格式文本轉(zhuǎn)成Unix格式文本,命令如下:

:1,$s/^M//g

其中^M是同時(shí)Ctrl+V+M按出來的,表示回車。

在行首尾添加字符串

用下列命令在文本每行的行首添加字符串“NewString”,請注意空格的存在。

:g/^/s//NewString/g :%s/^/NewString/g

用下列命令在每行的行尾添加字符串“NewString”:

:g/$/s//NewString/g :%s/$/NewString/g

從文本的第3行至最后一行的行首全部插入字符串“NewString”:

:3,$s/^/NewString/

在整個(gè)文件中替換

在整個(gè)文件中替換特定字符串,所用的命令如下:

:%s/old_string/new_string/g

如果僅將文件中的第3行到第7行中的“old_string”替換成“new_string”,那么使用下列命令:

:3,7s/old_string/new_string/

注意,其中“s”為表示替換動(dòng)作,“%”表示所有行,“g”表示全文,“^”表示行首,“$”表示行尾。

助力編程

語法加亮

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

快速查看函數(shù)幫助

在用vi閱讀和編寫程序(主要是指C或C++程序)時(shí),如果需要了解某個(gè)函數(shù)的具體功能,可以將光標(biāo)移到該函數(shù)上,然后在命令模式下輸入“K”,就可以調(diào)動(dòng)“Linux Programmer's Manual”中對此函數(shù)的man幫助。

標(biāo)記定位

在閱讀和編寫大的程序文件時(shí),利用標(biāo)記(書簽)功能定位是十分有幫助的。建議大家多多使用。下面舉個(gè)簡單的例子進(jìn)行說明。

首先打開一個(gè)源代碼文件,將光標(biāo)移到想做標(biāo)記的位置。假如做一個(gè)名為“debug1”的標(biāo)記,那么用戶可在命令模式下輸入做標(biāo)記的命令“mdebug1”,然后敲入回車鍵,一個(gè)名為“debug1”的標(biāo)記就做好了。

接下來用戶可以隨意將光標(biāo)移到其它的位置,當(dāng)在命令模式下輸入“`debug1”后,就能快速回到“debug1”的標(biāo)記所在行的行首。

“ctags”命令

在閱讀和編寫C或C++程序時(shí),可用“ctags”命令對當(dāng)前目錄下的C源程序進(jìn)行掃描。命令如下:

$ ctags *.c

上面一條命令將為當(dāng)前目錄下的.c文件生成tags文件,然后使用“ta 函數(shù)名”命令來快速打開相應(yīng)函數(shù)所在文件,并將光標(biāo)定位在對應(yīng)函數(shù)的開頭。

自動(dòng)對齊

在命令模式下使用“:set ai”命令可以讓程序中各行自動(dòng)對齊。

顯示匹配

在編程中{}、[]、()常常是成對出現(xiàn)的,而且常常有多層的嵌套,很容易遺漏和失誤。所以下面的這個(gè)技巧非常有用。在命令模式下使用“:set sm”命令會在用戶敲)、]、}時(shí)顯示出對應(yīng)匹配的{、[、(來。

縮寫文本

在編程中常常要輸入一些重復(fù)且很長的信息,比如較長的名詞和公司信息等,這時(shí)可以用vi的縮寫功能。它可以將一個(gè)很長的詞用一個(gè)很短的縮寫來代替。比如一個(gè)較長的URL,可以給它一個(gè)縮寫,在命令模式下使用“:ab myurl http://www.mykms.org/kms/myproject/index.php?id=0023”,然后在插入模式下輸入“myurl”后,“myurl”就會自動(dòng)變成剛才定義的那個(gè)長的URL。另外,在插入模式下輸入“:una myurl”,則是取消“myurl”這個(gè)縮寫。

set選項(xiàng)

使用“:set”可以設(shè)置vi的環(huán)境變量。vi的環(huán)境變量有很多。使用“:set all”可以顯示所有環(huán)境變量。使用“:set 變量名及參數(shù)”可以設(shè)置對應(yīng)的環(huán)境變量。

下面的命令可顯示行號:

:set number

下面的命令可將文件設(shè)為只讀:

:set readonly

下面的命令使vi在“:n”和“:!”命令之前都自動(dòng)保存文件:

:set autowrite

下面的命令顯示用戶處在什么模式下:

:set showmode

同理,“:set noshowmode”就是關(guān)閉此顯示。

vi環(huán)境變量還有很多。了解它們,將給用戶使用vi帶來更多方便。用戶可以通過vi的聯(lián)機(jī)幫助查到對應(yīng)的環(huán)境變量的詳細(xì)作用。

使用宏

vi的宏提供了更強(qiáng)大的功能,用戶可以根據(jù)自己的需要來定制自己的宏,然后通過宏來完成事先定義好的一整套操作。用“map”來定義一個(gè)宏,用“unmap”來刪除。在熟悉了vi的基本命令后,將這些命令組合起來就能完成復(fù)雜的工作。如果再將這些命令的組合定義成宏的話,就可以方便用戶經(jīng)常性地調(diào)用了。這是一個(gè)非常強(qiáng)大的功能,建議大家多多使用。

總結(jié)

vi是類Unix操作系統(tǒng)上常用的缺省編輯器。了解了vi,用戶就能利用它高效地編輯文件。但是學(xué)習(xí)vi的過程很長,因?yàn)樗墓δ芎芏?。不過它確實(shí)是一個(gè)值得花時(shí)間來學(xué)習(xí)的工具。所謂“工欲善其事,必先利其器”,希望大家都能學(xué)好vi,善用這一文本編輯的利器。
 

標(biāo)簽:常州 綏化 那曲 延安 泰安 那曲 淮北 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《vi編輯器使用技巧》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阳春市| 鄄城县| 横山县| 普洱| 黔南| 秭归县| 漳浦县| 泾阳县| 汉寿县| 平利县| 桐城市| 长顺县| 方正县| 开阳县| 榆社县| 宜兴市| 苏尼特右旗| 大新县| 班玛县| 特克斯县| 涞源县| 甘肃省| 荥经县| 康乐县| 康定县| 兰西县| 新沂市| 浪卡子县| 乌苏市| 汕尾市| 探索| 铅山县| 乌拉特后旗| 临潭县| 怀远县| 永靖县| 准格尔旗| 社旗县| 汝阳县| 南漳县| 周宁县|