国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

UNIX 新手指南,第 2 部分: vi 文本編輯器

瀏覽:30日期:2024-06-12 17:25:43

開始之前

了解本教程中包含的內(nèi)容以及如何最好地利用本教程。

關(guān)于本系列

這個(gè)由四部分組成的文章系列將從用戶的角度出發(fā),介紹 Unix® 的基本知識。對于很久沒有使用類 UNIX 操作系統(tǒng)的用戶來說,這個(gè)初始的教程是個(gè)很好的溫習(xí)。對于具有 Windows® 使用經(jīng)驗(yàn)的新的 UNIX 用戶來說,它也很有價(jià)值,因?yàn)槠渲幸昧?Windows,并將兩者進(jìn)行了比較。 本系列中的后續(xù)教程將詳細(xì)地介紹一些特定的應(yīng)用程序(比如 vi),并討論關(guān)于 Shell 的訣竅與技巧。

關(guān)于本教程

vi 編輯器已有 30 多年的歷史,并且到現(xiàn)在為止,僅對其進(jìn)行了很少的更改。 它保持了不使用鼠標(biāo)而通過鍵盤驅(qū)動(dòng)的界面,這使得用戶可以始終將手指放在標(biāo)準(zhǔn)鍵位處。 用戶可以在兩種模式(插入模式和命令模式)之間進(jìn)行切換,以便分別插入文本或?qū)ξ臋n進(jìn)行操作和導(dǎo)航。 命令模式為用戶提供了各種各樣的功能,而這些功能在鼠標(biāo)驅(qū)動(dòng)的界面中通常需要通過指向-點(diǎn)擊 (point-and-click) 來實(shí)現(xiàn)。

目標(biāo)

本教程的目標(biāo)是讓 vi 的新用戶能夠熟練地對文檔進(jìn)行創(chuàng)建、編輯和導(dǎo)航。 本文重點(diǎn)關(guān)注于常用的 vi 命令,并詳細(xì)地討論了 vi 中一些比較隱秘的特性。 在學(xué)習(xí)使用 vi 時(shí)需要記住的最重要的一點(diǎn)是,起初您可能會(huì)感覺到文本編輯的速度很慢并且很麻煩。 您可以回憶一下第一次使用鼠標(biāo)或?qū)W習(xí)使用鍵盤進(jìn)行輸入的情形。 這個(gè)具有 30 多年歷史的應(yīng)用程序強(qiáng)迫用戶以一種新的模式進(jìn)行思考,但是花費(fèi)大量的學(xué)習(xí)時(shí)間是值得的,最終能夠?qū)崿F(xiàn)快速的、不使用鼠標(biāo)的文本編輯。

先決條件

要學(xué)習(xí)本教程,您需要對命令行有基本的認(rèn)識。 您應(yīng)該了解什么是文件和目錄,并且能夠使用自己的帳戶登錄到類 UNIX 操作系統(tǒng)。

系統(tǒng)要求

在任何運(yùn)行類 Unix 操作系統(tǒng)的計(jì)算機(jī)上擁有您自己的帳戶,這是完成本教程所需的要求。 類 UNIX 操作系統(tǒng)包括 IBM® AIX® 操作系統(tǒng)、Linux®、Berkeley Software Distribution (BSD)、Mac OS® X(使用終端來訪問命令行),以及許多其他的操作系統(tǒng)。

vi 簡介

vi 文本編輯器使用了兩種主要的模式:命令模式和插入模式。 本教程的第一部分將重點(diǎn)關(guān)注于導(dǎo)航文件,這個(gè)任務(wù)可以在命令模式中完成。 當(dāng)您處于命令模式中時(shí),普通的鍵盤操作用來執(zhí)行命令,而不是創(chuàng)建文本。 當(dāng)您進(jìn)入到插入模式,可以使用鍵盤輸入文本,例如在命令行中。 要退出命令模式,可以按 Esc 鍵。

vi 中的命令有些是單鍵命令,有些是使用 Shift 或 Ctrl 或按鍵序列的命令。 在使用引用一個(gè)大寫字母的命令時(shí),您應(yīng)該使用 Shift 鍵加上這個(gè)字母。 在使用引用兩個(gè)字母或符號的命令時(shí),您應(yīng)該按順序按下這些鍵,而不是同時(shí)按下。

要開始練習(xí),首先您將在命令行中使用 vi 命令加上新文件的名稱,以創(chuàng)建一個(gè)空白文件。 在本教程中,您在 vi 中從頭開始建立了一個(gè)文檔,然后學(xué)習(xí)使用有用的 vi 命令對該文檔進(jìn)行編輯。 在完成本教程之后,您將了解所有主要的 vi 命令,這些命令可以用來完成日常的編輯任務(wù),以及一些功能強(qiáng)大的命令,您可以在適當(dāng)?shù)臅r(shí)候使用它們。 在學(xué)習(xí)本教程的過程中,隨時(shí)可以使用參考資料部分中來自 Cal Tech 的參考手冊。

登錄到您最喜歡的類 UNIX 操作系統(tǒng),然后使用 vi 打開一個(gè)新的文件(請參見圖 1)。

圖 1. 使用 vi 打開一個(gè)新的文件

vi 打開了一個(gè)名為 tutorial.txt 的新文件(請參見圖 2)。 您馬上將看到奇怪的地方:文本編輯器最左邊的一欄中填滿了波浪符號。 不要擔(dān)心,這是 vi 表示文檔中未定義的部分的方式。 換句話說,因?yàn)樵撐募]有任何內(nèi)容,所以這些行并不存在。

圖 2. vi 中的空白文件

在開始進(jìn)行任何操作之前,您應(yīng)該了解如何保存文件以及如何編輯文件。 要輸入這些類型的命令,可以按冒號 (:) 鍵加上描述所需操作的字母序列。 要保存新的文件,可以按 : 鍵、w 鍵,然后按 Enter 鍵。要退出 vi,可以按 : 鍵、q 鍵,然后按 Enter 鍵。 現(xiàn)在,重新在命令行中打開 vi。 如果您希望退出 vi 而不保存所做的更改,那么它會(huì)發(fā)出警告并提示您按感嘆號 (!) 以確認(rèn)您的操作。 如果您希望忽略系統(tǒng)警告,可以在按鍵序列的后面追加一個(gè)感嘆號,退出 vi 的按鍵序列是:key, q key, ! key, Enter key

您可以將命令組合使用,如 wq,表示保存文件并退出 vi。

您需要完成的第一項(xiàng)任務(wù)是插入一些文本,以便能夠?qū)W習(xí)如何編輯和操作文件。 在缺省情況下,進(jìn)入 vi 后處于命令模式。 所以,如果您這時(shí)開始輸入,那么可能會(huì)對得到的結(jié)果感到困惑。 稍后將對每種模式進(jìn)行介紹,現(xiàn)在請按 i 鍵以進(jìn)入到插入模式,然后輸入一些文本行內(nèi)容,這與在普通文本編輯器中的操作相同。 在完成輸入后,按 Esc 鍵返回到命令模式。 請參見圖 3 和 4。

圖 3. 當(dāng)您進(jìn)入到插入模式時(shí),編輯器中最下面的一行將會(huì)說明這一點(diǎn)

圖 4. 在示例文檔中輸入一些內(nèi)容,以便可以對其進(jìn)行操作

在按了 Esc 鍵之后,光標(biāo)仍然位于輸入的最后一個(gè)字符處,并且返回到了命令模式。 下一部分將向您介紹如何導(dǎo)航文件。

在 vi 中進(jìn)行導(dǎo)航

在命令模式中,您的鍵盤變成了與界面的交互工具,而不是文本輸入工具。vi 可以讓那些需要使用所有常用命令的用戶將手保持在標(biāo)準(zhǔn)鍵位(a-s-d-f 和 j-k-l-;)上,并延伸到附近的字母。 首先要學(xué)習(xí)的基本操作是移動(dòng)光標(biāo)。 大多數(shù)最新版本的 vi 允許您使用鍵盤上的箭頭鍵,但是高級的 vi 用戶更喜歡使用手指易于觸及的按鍵 h-j-k-l:

h 和 l 分別表示向左和向右,這是非常直觀的,因?yàn)閷⑺鼈兘壎ǖ搅怂膫€(gè)方向鍵中最左邊和最右邊的按鍵上。

k 向上移動(dòng)光標(biāo)。

j 向下移動(dòng)光標(biāo)。

您將很快地記住這些按鍵。 要將光標(biāo)移動(dòng)到您所創(chuàng)建的包含三行內(nèi)容的文件中的第一行,可以按兩次 k 鍵。 光標(biāo)現(xiàn)在位于第一行的末尾。 繼續(xù)進(jìn)行操作,并使用 h-j-k-l 將光標(biāo)移動(dòng)到文件中的其他位置,然后再次讓它返回到第一行的末尾。 請參見圖 5。

圖 5. 使用方向鍵 h-j-k-l 讓光標(biāo)返回到文件的第一行

使用快捷方式移動(dòng)光標(biāo)

在一行中移動(dòng)

現(xiàn)在您的光標(biāo)已經(jīng)位于第一行的末尾,您可能希望將它移動(dòng)到該行的開頭,但卻不希望反復(fù)地按 h 鍵以使光標(biāo)移動(dòng)到那里。 在命令模式中,vi 具有一些基于鍵盤的快捷方式,它們允許您快速地移動(dòng)到文件中的各個(gè)位置,與您將手移動(dòng)到鼠標(biāo)并指向文件中的某個(gè)位置,或使用箭頭鍵一次移動(dòng)一個(gè)位置相比,這種方式的速度更快。 這些快捷方式中的第一個(gè)是 0:

要移動(dòng)到一行的開頭,可以按 0,您的光標(biāo)將跳轉(zhuǎn)到該位置。

要移動(dòng)到一行的末尾,可以按 $。

繼續(xù)練習(xí)并嘗試這種方法。

現(xiàn)在,您可以一次移動(dòng)一個(gè)字符。 您也可以將光標(biāo)移動(dòng)到每一行的開頭和末尾,但是這兩種操作在移動(dòng)粒度方面相差很大。 另一種選擇是一次移動(dòng)一個(gè)單詞。 您可以使用 w 和 b 鍵來完成這項(xiàng)任務(wù):

按 w 鍵將向前移動(dòng)一個(gè)單詞。

按 b 鍵將向后移動(dòng)一個(gè)單詞。

您可以嘗試這種方法,先將光標(biāo)移動(dòng)到第一行的開頭(按 0),然后按三次 w 鍵將光標(biāo)移動(dòng)到單詞 test 的開頭。 接下來,按兩次 b 鍵以返回到單詞 is。

您可能注意到了,w 鍵和 b 鍵將光標(biāo)定位于每個(gè)單詞的開頭。 您還可以使用 e 鍵向前移動(dòng)光標(biāo),導(dǎo)航到單詞的末尾,或按 g 鍵。 按 g 向后移動(dòng)。 請參見圖 6。

圖 6. 使用 w 和 b 鍵逐個(gè)單詞地移動(dòng)光標(biāo),這是一種快速導(dǎo)航到拼寫錯(cuò)誤或需要更改的單詞的好方法

從一行移動(dòng)到另一行

現(xiàn)在,您可以在一行中快速地進(jìn)行移動(dòng),但是如果正在處理一個(gè)較大的文件,還需要快速地從一行移動(dòng)到另一行。 在 vi 中,有許多方法可以用來完成這項(xiàng)任務(wù)。 您可以使用向下或向上的移動(dòng)命令(k 和 j),或者您可以使用 page-up 和 page-down 命令。 vi 中的大多數(shù)命令不需要按 Ctrl 鍵,但是 page-up 和 page-down 這對命令是這條規(guī)則的例外:

按 Ctrl-u 向上翻一頁。

按 Ctrl-d 向下翻一頁。

要快速地導(dǎo)航到文件的開頭或末尾,您可以按 gg 或 G:

按 gg 可以將光標(biāo)移動(dòng)到文檔中的第一行。

按 G 可以將光標(biāo)移動(dòng)到文檔中的最后一行。

還可以在附加方法中指定行數(shù),這些內(nèi)容將在在 vi 命令前面加上數(shù)字部分中討論。

在 vi 中進(jìn)行插入和編輯

在導(dǎo)航文檔的過程中,您仍然處于命令模式,并且使用鍵盤作為界面交互工具來移動(dòng)光標(biāo)。 下一組命令模式按鍵提供了各種進(jìn)入插入模式的方法,可以用來向文件中輸入新的文本。 在本教程開始處輸入初始文本時(shí),您使用了最基本的方式進(jìn)入到插入模式:按 i 鍵,它表示 insert。 按 i 可以在當(dāng)前光標(biāo)位置的前面進(jìn)入到插入模式。

例如,如果您按 gg 導(dǎo)航到文件的開頭,那么您可以按 i 鍵,這將使得您輸入的任何文本都出現(xiàn)在當(dāng)前行文本之前。 按 gg、i,然后輸入 I am inserting new text with i。 在完成輸入后,按 Esc 鍵返回到命令模式。 請記住,在輸入完新的文本之后,您必須返回到命令模式,否則無法對文檔進(jìn)行導(dǎo)航。 請參見圖 7。

圖 7. 添加新文本的最簡單的方法是使用 i 鍵進(jìn)入到插入模式

添加新文本的另一個(gè)基本方法是使用 a 鍵,它表示 append。 使用 a 鍵可以進(jìn)入到插入模式,但它將在光標(biāo)當(dāng)前位置之后添加文本,而不是在光標(biāo)當(dāng)前位置之前。 要測試該命令,定位到文檔的最后一行,按 G 和 $ 鍵定位到該行的末尾。 然后按 a 鍵,輸入 Pressing a appends text,并按 Esc 鍵返回到命令模式。 請參見圖 8。

圖 8. 另一種插入文本的方法是使用 a 鍵,它表示 append

現(xiàn)在您的光標(biāo)位于文件最后一行的句號處。 如果您現(xiàn)在按 i 鍵,那么會(huì)將文本插入到句號之前。 如果您按 a 鍵,則會(huì)將文本插入到句號之后。 通過按 I 鍵(大寫字母),您可以在一行的開頭進(jìn)行輸入,即使您的光標(biāo)位于該行的末尾。 與之類似,如果您按大寫 A 鍵,那么您可以在該行的末尾輸入文本,無論光標(biāo)當(dāng)前處于什么位置。 要測試這個(gè)命令,可以按 I,輸入 I think ,然后按 Esc 鍵。 請參見圖 9。

圖 9. 要在一行的開頭插入文本(無論光標(biāo)當(dāng)前處于什么位置),可以按 I 鍵

插入新文本的另一種有用的方法是,在進(jìn)入到插入模式的同時(shí),向您的文本文件添加新的一行。 與普通的文本插入一樣,新的一行可以插入到光標(biāo)位置之前或之后:

要在當(dāng)前光標(biāo)位置之前插入新的一行,可以按 O 鍵。

要在當(dāng)前光標(biāo)位置之后插入新的一行,可以按 o 鍵。

要嘗試使用這個(gè)命令,可以按 O,輸入 I inserted this line by pressing O,然后按 Esc 鍵以返回到命令模式。 請參見圖 10。

圖 10. 要在光標(biāo)之前插入新的文本行,可以按 O 鍵

您現(xiàn)在已經(jīng)使用了一些主要的方法來插入新的文本。 回顧一下,這些鍵分別是 a、i、A、I、o 和 O。您能記住其中每個(gè)字母表示什么操作嗎? 即使現(xiàn)在沒有記住,請不要擔(dān)心,在使用一段時(shí)間之后您就會(huì)記住了。

替換文本

既然已經(jīng)向 tutorial.txt 文件中輸入了一些內(nèi)容,您可能發(fā)現(xiàn)其中存在一些錯(cuò)誤,或者可能希望更改其中的一些單詞。 在學(xué)習(xí)如何刪除文本之前,您應(yīng)該學(xué)習(xí)如何替換文本。為什么呢? 因?yàn)槿绻鷮W(xué)習(xí)了如何添加新的文本和刪除舊的文本,您可能會(huì)養(yǎng)成使用刪除命令的習(xí)慣,而在某些情況下 replace 命令可能更加有效。 與先刪除一個(gè)單詞,然后在該處添加一個(gè)新單詞的方法相比,使用單步處理對單詞進(jìn)行替換更加便捷。

vi 使用了兩種重要的替換命令。 第一種是 r 鍵,它將刪除光標(biāo)位置的字符,并進(jìn)入到插入模式以便輸入單個(gè)替換的字符。 換句話說,您可以在按了 r 之后輸入一個(gè)字符。 因此,vi 自動(dòng)地返回到命令模式(不需要按 Esc 鍵)。 要嘗試該命令,可以使用 k 鍵和 l 鍵導(dǎo)航到第二行的末尾。 您的光標(biāo)應(yīng)該位于句號處。 要將句號更改為感嘆號,可以按 r 鍵,然后按 ! 鍵。 請參見圖 11。

圖 11. 要替換單個(gè)字符,可以按 r 鍵,然后輸入文檔中需要的字符

還有一種更有價(jià)值的 replacement 命令,可以按 c 鍵,然后按 w 鍵,它們組合在一起表示 change Word。 這個(gè)命令刪除當(dāng)前的單詞,并進(jìn)入到插入模式,以便您可以立即輸入替換的單詞。 在這種情況下,輸入完新的單詞后,您需要按 Esc 鍵以通知 vi 完成了替換任務(wù)。 將光標(biāo)向下移動(dòng)到單詞 great,按 c 和 w 鍵,輸入 cool,然后按 Esc 鍵。 請參見圖 12。

圖 12. 要替換單詞,可以按 c 和 w 鍵,然后輸入新的單詞

如果您希望刪除文本,而不是對其進(jìn)行替換,那么您需要使用 delete 命令。 與 vi 中其他的操作一樣,您有多種方法可供選擇,這取決于您希望一次刪除多少數(shù)據(jù)。 最基本的 delete 命令是 x 鍵,它一次刪除一個(gè)字符。 要嘗試使用該命令,可以返回到文本文件的開頭,按 Ctrl-u (page-up) 鍵。 按 $ 鍵定位到該行的末尾,然后按五次 x 鍵,以刪除 test.。 請參見圖 13。

刪除文本

圖 13. 要逐個(gè)地刪除字符,可以使用 x 鍵

按五次 x 鍵可以完成這項(xiàng)任務(wù),但是您可能希望 vi 能夠?yàn)楦鞣N操作提供更簡單的方法。 按 d 鍵和 w 鍵,您可以一次刪除一個(gè)單詞,這兩個(gè)鍵組合在一起表示 delete Word。 按三次 b 鍵,返回到單詞 This。 要?jiǎng)h除這個(gè)單詞,按 d 鍵和 w 鍵。 請參見圖 14。

圖 14. 要?jiǎng)h除單詞,可以使用 dw 命令

現(xiàn)在第一行中包含一個(gè)半截的、不完整的句子。 要?jiǎng)h除這一行中光標(biāo)位置之后所有的內(nèi)容,您可以使用 d 鍵加上 $ 鍵,前面曾經(jīng)介紹過,后者用來表示到一行末尾的操作。 按 d 鍵和 $ 鍵,以便刪除該行末尾的 is a。 請參見圖 15。

圖 15. 要?jiǎng)h除光標(biāo)到一行末尾的文本,可以使用 d$

vi 中最后一個(gè)常用的刪除命令是 delete-line 命令,可以按兩次 d 鍵來完成該操作。 它會(huì)刪除一行文本,并將下面一行內(nèi)容上移,這樣一來,文檔中就不會(huì)出現(xiàn)空行。 要?jiǎng)h除文件中的第一行,可以按 d 鍵,然后再按一次該鍵。 請參見圖 16。

圖 16. 要?jiǎng)h除整行文本,可以按 dd

談到向上移動(dòng)一行文本,您可以按 J 鍵以使用 join 命令,該命令將光標(biāo)所在行的下面一行文本向上移動(dòng)到光標(biāo)所在行,而不會(huì)刪除任何文本。 您的光標(biāo)應(yīng)該位于文檔的新行(第一行)。 按 J 鍵將第二行上移至第一行。請參見圖 17。

圖 17. 要在 vi 中將兩行文本合并在一起,可以按 J 鍵

更好地完成其他操作

現(xiàn)在,您應(yīng)該已經(jīng)掌握了在 vi 中創(chuàng)建、導(dǎo)航和編輯文本文件的一些基本技能。 在熟練掌握了這些基本的命令之后,您可以像在其他更加常規(guī)的文本編輯器中那樣創(chuàng)建和編輯文件。 但是您的指令表中還缺少了一些內(nèi)容。 本部分內(nèi)容將向您介紹如何剪切、復(fù)制和粘貼。 您可以一次反復(fù)地執(zhí)行命令、再次執(zhí)行命令、搜索文檔、并使用撤銷 (undo) 和重做 (redo) 命令。 這個(gè)編輯器提供了其他文本編輯器中主要的功能,并且使用了快速訪問的鍵盤命令方式。

剪切、復(fù)制和粘貼

在 vi 中刪除文本的同時(shí),會(huì)將這些文本自動(dòng)地保存到緩沖區(qū)中(類似于 Windows 中的剪貼板)。 您已經(jīng)了解了如何完成剪切命令,可以使用 x、dd、dw 和 d$。 可以使用類似的命令來復(fù)制數(shù)據(jù),而不刪除該數(shù)據(jù),在 vi 中,這種操作稱為 yank:

按兩次 y 鍵,可以復(fù)制整行文本。

按 y 鍵和 w 鍵,可以復(fù)制一個(gè)單詞。

按 y 鍵和 $ 鍵,可以從當(dāng)前光標(biāo)位置開始復(fù)制該行文本。

只有了解了如何粘貼數(shù)據(jù),對數(shù)據(jù)進(jìn)行復(fù)制才能真正派上用場。 所以,在測試這些命令之前,您應(yīng)該學(xué)習(xí) paste 命令,可以使用 p 鍵來執(zhí)行該命令。 與 vi 中其他的許多命令一樣,小寫的 p 鍵將數(shù)據(jù)粘貼到光標(biāo)位置之后,而大寫的 P 鍵將數(shù)據(jù)粘貼到光標(biāo)位置之前。

標(biāo)簽: Unix系統(tǒng)
相關(guān)文章:
主站蜘蛛池模板: 台中县| 墨脱县| 淮南市| 兴业县| 佛冈县| 怀远县| 闵行区| 五指山市| 荆州市| 手机| 定远县| 建湖县| 巴青县| 平邑县| 平昌县| 集贤县| 焉耆| 靖宇县| 江山市| 靖宇县| 泗阳县| 河北区| 日喀则市| 沁阳市| 康平县| 瑞丽市| 稷山县| 东阿县| 鲁甸县| 丰原市| 锡林浩特市| 霸州市| 吉首市| 祥云县| 关岭| 曲靖市| 石阡县| 镇江市| 馆陶县| 隆德县| 乐至县|