亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

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

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

開始之前

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

關于本系列

這個由四部分組成的文章系列將從用戶的角度出發,介紹 Unix® 的基本知識。對于很久沒有使用類 UNIX 操作系統的用戶來說,這個初始的教程是個很好的溫習。對于具有 Windows® 使用經驗的新的 UNIX 用戶來說,它也很有價值,因為其中引用了 Windows,并將兩者進行了比較。 本系列中的后續教程將詳細地介紹一些特定的應用程序(比如 vi),并討論關于 Shell 的訣竅與技巧。

關于本教程

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

目標

本教程的目標是讓 vi 的新用戶能夠熟練地對文檔進行創建、編輯和導航。 本文重點關注于常用的 vi 命令,并詳細地討論了 vi 中一些比較隱秘的特性。 在學習使用 vi 時需要記住的最重要的一點是,起初您可能會感覺到文本編輯的速度很慢并且很麻煩。 您可以回憶一下第一次使用鼠標或學習使用鍵盤進行輸入的情形。 這個具有 30 多年歷史的應用程序強迫用戶以一種新的模式進行思考,但是花費大量的學習時間是值得的,最終能夠實現快速的、不使用鼠標的文本編輯。

先決條件

要學習本教程,您需要對命令行有基本的認識。 您應該了解什么是文件和目錄,并且能夠使用自己的帳戶登錄到類 UNIX 操作系統。

系統要求

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

vi 簡介

vi 文本編輯器使用了兩種主要的模式:命令模式和插入模式。 本教程的第一部分將重點關注于導航文件,這個任務可以在命令模式中完成。 當您處于命令模式中時,普通的鍵盤操作用來執行命令,而不是創建文本。 當您進入到插入模式,可以使用鍵盤輸入文本,例如在命令行中。 要退出命令模式,可以按 Esc 鍵。

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

要開始練習,首先您將在命令行中使用 vi 命令加上新文件的名稱,以創建一個空白文件。 在本教程中,您在 vi 中從頭開始建立了一個文檔,然后學習使用有用的 vi 命令對該文檔進行編輯。 在完成本教程之后,您將了解所有主要的 vi 命令,這些命令可以用來完成日常的編輯任務,以及一些功能強大的命令,您可以在適當的時候使用它們。 在學習本教程的過程中,隨時可以使用參考資料部分中來自 Cal Tech 的參考手冊。

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

圖 1. 使用 vi 打開一個新的文件

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

圖 2. vi 中的空白文件

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

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

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

圖 3. 當您進入到插入模式時,編輯器中最下面的一行將會說明這一點

圖 4. 在示例文檔中輸入一些內容,以便可以對其進行操作

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

在 vi 中進行導航

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

h 和 l 分別表示向左和向右,這是非常直觀的,因為將它們綁定到了四個方向鍵中最左邊和最右邊的按鍵上。

k 向上移動光標。

j 向下移動光標。

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

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

使用快捷方式移動光標

在一行中移動

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

要移動到一行的開頭,可以按 0,您的光標將跳轉到該位置。

要移動到一行的末尾,可以按 $。

繼續練習并嘗試這種方法。

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

按 w 鍵將向前移動一個單詞。

按 b 鍵將向后移動一個單詞。

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

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

圖 6. 使用 w 和 b 鍵逐個單詞地移動光標,這是一種快速導航到拼寫錯誤或需要更改的單詞的好方法

從一行移動到另一行

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

按 Ctrl-u 向上翻一頁。

按 Ctrl-d 向下翻一頁。

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

按 gg 可以將光標移動到文檔中的第一行。

按 G 可以將光標移動到文檔中的最后一行。

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

在 vi 中進行插入和編輯

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

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

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

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

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

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

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

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

要在當前光標位置之前插入新的一行,可以按 O 鍵。

要在當前光標位置之后插入新的一行,可以按 o 鍵。

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

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

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

替換文本

既然已經向 tutorial.txt 文件中輸入了一些內容,您可能發現其中存在一些錯誤,或者可能希望更改其中的一些單詞。 在學習如何刪除文本之前,您應該學習如何替換文本。為什么呢? 因為如果您學習了如何添加新的文本和刪除舊的文本,您可能會養成使用刪除命令的習慣,而在某些情況下 replace 命令可能更加有效。 與先刪除一個單詞,然后在該處添加一個新單詞的方法相比,使用單步處理對單詞進行替換更加便捷。

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

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

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

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

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

刪除文本

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

按五次 x 鍵可以完成這項任務,但是您可能希望 vi 能夠為各種操作提供更簡單的方法。 按 d 鍵和 w 鍵,您可以一次刪除一個單詞,這兩個鍵組合在一起表示 delete Word。 按三次 b 鍵,返回到單詞 This。 要刪除這個單詞,按 d 鍵和 w 鍵。 請參見圖 14。

圖 14. 要刪除單詞,可以使用 dw 命令

現在第一行中包含一個半截的、不完整的句子。 要刪除這一行中光標位置之后所有的內容,您可以使用 d 鍵加上 $ 鍵,前面曾經介紹過,后者用來表示到一行末尾的操作。 按 d 鍵和 $ 鍵,以便刪除該行末尾的 is a。 請參見圖 15。

圖 15. 要刪除光標到一行末尾的文本,可以使用 d$

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

圖 16. 要刪除整行文本,可以按 dd

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

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

更好地完成其他操作

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

剪切、復制和粘貼

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

按兩次 y 鍵,可以復制整行文本。

按 y 鍵和 w 鍵,可以復制一個單詞。

按 y 鍵和 $ 鍵,可以從當前光標位置開始復制該行文本。

只有了解了如何粘貼數據,對數據進行復制才能真正派上用場。 所以,在測試這些命令之前,您應該學習 paste 命令,可以使用 p 鍵來執行該命令。 與 vi 中其他的許多命令一樣,小寫的 p 鍵將數據粘貼到光標位置之后,而大寫的 P 鍵將數據粘貼到光標位置之前。

標簽: Unix系統
相關文章:
主站蜘蛛池模板: 特别黄的免费视频大片 | 国产免费黄色片 | 九九九在线视频 | 久久综合中文字幕一区二区 | 日本精品一区二区三区在线 | 国产精品2020观看久久 | 性生活视频网站 | 8x影院在线观看 | 在线观看国产小屁孩cao大人 | 播放毛片| 95视频在线观看免费 | 美国一级大黄一片免费网站 | 久久精品国产精品亚洲红杏 | 夜恋秀场欧美成人影院 | 欧美一区二区三区在线观看免费 | 一区在线免费观看 | 欧美黄色视屏 | 久久性生活片 | 一级一片一a一片 | 一级黄色在线视频 | 色婷婷国产精品欧美毛片 | 国产电影网 | 国产手机在线αⅴ片无码观看 | 日本一级毛片免费播 | 国产一区影视 | 一级一毛片 | 草逼网站| 日韩精品免费一区二区 | 国产精品久久久久免费视频 | 粉嫩极品国产 | 成人区在线观看免费视频 | 欧美日韩一区二区不卡三区 | 日韩一区二区三区免费体验 | 成人另类视频 | 美国一级大黄一片免费的网站 | 国产精品美女自在线观看免费 | 国产无遮挡又黄又爽在线视频 | 欧美一级中文字幕 | 亚洲合集综合久久性色 | 国产久 | 99国产成+人+综合+亚洲 欧美 |