在 Linux 系統中有幾種文件編輯器,你可以根據需求選擇合適的文件編輯器。在這裡,我想推薦 Vim 編輯器。-- Magesh Maruthamuthu(作者)
如果你是一名系統管理員或者開發者,當你在終端工作時有時會需要編輯一個文件。在 Linux 系統中有幾種文件編輯器,你可以根據需求選擇合適的文件編輯器。在這裡,我想推薦 Vim 編輯器。
相對於創建新文件,你更多是修改已經存在的文件。在這種情況下,Vim 快捷鍵可以有效地滿足你的需求。
下列文章可以幫助你瞭解對文件和目錄的操作。
- Linux 基礎:對文件和目錄進行操作的 Linux 和 Unix 命令
- 在 Linux 中查看不同文件格式的 10 種方法
什麼是 Vim
Vim 是被 Linux 管理員和開發者廣泛使用的最流行和功能強大的編輯器之一。它可以通過高度的自定義配置來提高文本編輯效率。它是在眾多 Unix 默認安裝的 Vi 編輯器的升級版。
Vim 通常被稱為“程序員的編輯器”,但並不限於此,它也可用於編輯任何類型的文件。它具有許多功能,例如:多次撤銷、多窗口和緩衝區、語法高亮、命令行編輯、文件名補全、可視選擇等等。你可以使用 :help 命令來獲取在線幫助。
理解 Vim 的模式
Vim 有兩種模式,詳細介紹如下:
命令模式: 當啟動 Vim 編輯器後,默認處在命令模式下。你可以在文件中移動並且修改內容,剪切、複製和粘貼文件的一部分,同時發出命令執行更多操作(按 ESC 鍵進入命令模式)
插入模式: 插入模式用於在給定的文檔位置插入文本(按 i 鍵進入插入模式)
我如何知道我正使用哪種 Vim 模式呢?
如果你正在使用插入模式,你會在編輯器的底部看到 INSERT。如果編輯器底部沒有顯示任何內容,或者在編輯器底部顯示了文件名,則處於 “命令模式”。
命令模式下的光標移動
Vim 快捷鍵允許你使用不同的方式來移動光標:
- G – 跳轉到文件最後一行
- gg – 跳轉到文件首行
- $ – 跳轉到行末尾
- 0(數字 0) – 跳轉到行開頭
- w – 跳轉到下一個單詞的開始(單詞的分隔符可以是空格或其他符號)
- W – 跳轉到下一個單詞的開始(單詞的分隔符只能是空格)
- b – 跳轉到下一個單詞的末尾(單詞的分隔符可以是空格或其他符號)
- B – 跳轉到下一個單詞的末尾(單詞的分隔符只能是空格)
- PgDn 鍵 – 向下移動一頁
- PgUp 鍵 – 向上移動一頁
- Ctrl+d – 向下移動半頁
- Ctrl+u – 向上移動半頁
插入模式:插入文字
下面的 Vim 快捷鍵允許你根據需要在光標的不同位置插入內容。
- i – 在光標之前插入
- a – 在光標之後插入
- I – 在光標所在行的開頭插入。當光標位於行中間時,這個鍵很有用
- A – 在光標所在行的末尾插入。
- o – 在光標所在行的下面插入新行
- O – 在光標所在行的上面插入新行
- ea – 在單詞的末尾插入
拷貝、粘貼和刪除一行
- yy – 複製一行
- p / P – 將內容粘貼到光標之後 / 之前
- dd – 刪除一行
- dw – 刪除一個單詞
在 Vim 中搜索和替換匹配的模式
- /模式 – 向後搜索給定的模式
- ?模式 – 向前搜索給定的模式
- n – 向後重複搜索之前給定的模式
- N – 向前重複搜索之前給定的模式
- :%s/舊模式/新模式/g – 將文件中所有的舊模式替換為新模式
- :s/舊模式/新模式/g – 將當前行中所有的舊模式替換為新模式
- :%s/舊模式/新模式/gc – 逐個詢問是否文件中的舊模式替換為新模式
如何在 Vim 編輯器中跳轉到特定行
你可以根據需求以兩種方式達到該目的,如果你不知道行號,建議採用第一種方法。
通過打開文件並運行下面的命令來顯示行號
<code>:set number/<code>
當你設置好顯示行號後,按 :n 跳轉到相應的行號。例如,如果你想跳轉到第 15 行,請輸入:
<code>:15/<code>
如果你已經知道行號,請使用以下方法在打開文件時直接跳轉到相應行。例如,如果在打開文件時直接跳轉到 20 行,請輸入下面的命令:
<code>$ vim +20 [文件名]/<code>
撤銷操作/恢復上一次操作/重複上一次操作
- u – 撤銷更改
- Ctrl+r – 恢復更改
- . – 重複上一條命令
保存和退出 Vim
- :w – 保存更改但不退出 vim
- :wq – 寫並退出
- :q! – 強制退出
via: https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/
作者: Magesh Maruthamuthu 選題: lujun9972 譯者: 萌新阿巖 校對: wxy
本文由 LCTT 原創編譯, Linux中國 榮譽推出
閱讀更多 Linux中國 的文章