轉自:https://www.cnblogs.com/jacktian-it/p/9876519.html
使用vi文本編輯器
配置文件是Linux系統中的顯著特征之一,其作用有點類似於Windows系統中的注冊表,只不過注冊表是集中管理,而配置文件采用了分散的自由管理方式。那么如何使用Linux字符操作界面中的文本編輯器——vi,以便更好地管理和維護系統中的各種配置文件。
vi是一個功能強大的全屏幕文本編輯工具,一直以來都作為類UNIX操作系統的默認文本編輯器。vim是vi編輯器的增強版本,在vi編輯器的基礎上擴展了很多實用的功能,但是習慣上也將vim稱為vi。
1、vi/vim的使用
vi是工作在字符終端環境下的全屏幕編輯器,因此編輯界面相對比較簡單,並沒有為用戶提供鼠標操作和菜單系統,而是通過按鍵命令實現相應的編輯和操作功能。在vi編輯界面中可以使用三種不同的工作模式。分別是命令模式(Command mode),輸入模式(Insert mode)和末行模式(Last line mode)。當然,在不同的模式中能夠對文件進行的操作也不相同。
命令模式:
用戶剛剛啟動 vi/vim,便進入了命令模式。
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,並不會輸入一個字符,i被當作了一個命令。
以下是常用的幾個命令:
-
i 切換到輸入模式,以輸入字符。
-
x 刪除當前光標所在處的字符。
-
: 切換到底線命令模式,以在最底一行輸入命令。
若想要編輯文本:啟動Vim,進入了命令模式,按下i,切換到輸入模式。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。
輸入模式
在命令模式下按下i就進入了輸入模式。
在輸入模式中,可以使用以下按鍵:
-
字符按鍵以及Shift組合,輸入字符
-
ENTER,回車鍵,換行
-
BACK SPACE,退格鍵,刪除光標前一個字符
-
DEL,刪除鍵,刪除光標后一個字符
-
方向鍵,在文本中移動光標
-
HOME/END,移動光標到行首/行尾
-
Page Up/Page Down,上/下翻頁
-
Insert,切換光標為輸入/替換模式,光標將變成豎線/下划線
-
ESC,退出輸入模式,切換到命令模式
-
末行模式
在命令模式下按下:(英文冒號)就進入了末行模式。
末行模式可以輸入單個或多個字符的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(已經省略了冒號):
-
q 退出程序
-
w 保存文件
按ESC鍵可隨時退出末行模式。
簡單的說,我們可以將這三個模式用以下流程圖來進行表示:
2、vi/vim按鍵說明
在vi編輯器的命令模式中,可以輸入特定的按鍵(稱之為vi操作命令,注意區別於Linux系統命令)進行操作。主要包括模式切換、光標移動、復制、刪除、粘貼、文件內容查找及保存和退出等操作。
模式切換的方法 | ||||
a | 在當前光標位置之后插入內容。 | |||
A | 在光標所在行的末尾(行尾)插入內容。 | |||
i | 在當前光標位置之前插入內容。 | |||
I | 在光標所在行的開頭(行首)插入內容。 | |||
o | 在光標所在行的后面插入一個新行。 | |||
O | 在光標所在行的前面插入一個新行。 | |||
移動光標方法 | ||||
光標方向的移動 | 使用鍵盤中的四個方向鍵↑、↓、←、→完成相應的光標移動。 | |||
+ 光標移動到非空格符的下一行 | ||||
- 光標移動到非空格符的上一行 | ||||
H 光標移動到這個屏幕的最上方那一行的第一個字符 | ||||
M 光標移動到這個屏幕的中央那一行的第一個字符 | ||||
L 光標移動到這個屏幕的最下方那一行的第一個字符 | ||||
n<Enter> n 為數字。光標向下移動 n 行(常用) | ||||
翻頁移動 | 使用Page Down鍵或Ctrl+F組合鍵向下翻動一整頁內容。 | |||
使用Page Up鍵或Ctrl+B組合鍵向上翻動一整頁內容。 | ||||
使用Page Down鍵和Page Up鍵同樣適用於vi的輸入模式。 | ||||
行內快速跳轉 | 按Home鍵或^鍵、數字0鍵將光標快速跳轉到本行的行首。 | |||
按End鍵或$鍵將光標快速跳轉到本行的行尾。 | ||||
行間快速跳轉 | 使用按鍵命令1G或者gg可跳轉到文件內容的第1行。 | |||
使用按鍵命令G可跳轉到文件的最后一行。 | ||||
使用按鍵命令#G可跳轉到文件中的第#行(其中“#”號用具體數字替換)。 | ||||
復制 | yy 復制光標所在的那一行。 | |||
nyy n 為數字。復制光標所在的向下 n 行。 | ||||
yG 復制光標所在行到最后一行的所有數據。 | ||||
y1G 復制光標所在行到第一行的所有數據。 | ||||
y0 復制光標所在的那個字符到該行行首的所有數據。 | ||||
y$ 復制光標所在的那個字符到該行行尾的所有數據。 | ||||
粘貼 | 按p鍵即可將緩沖區中的內容粘貼到光標位置處之后。 | |||
按P鍵則會粘貼到光標位置處以前。 | ||||
刪除 | 使用x鍵或Del按鍵刪除光標處的單個字符。 | |||
使用dd刪除當前光標所在行。 | ||||
使用#dd刪除從光標處開始的#行內容。 | ||||
使用d^刪除當前光標之前到行首的所有字符。 | ||||
使用d$刪除當前光標處行尾的所有字符。 | ||||
查找文件內容 | 在命令模式中,按/鍵后可以輸入指定的字符串,從當前光標處開始向后進行查找(如果按?鍵則向前查找)完成查找后可以按n、N鍵在不同的查找結果中進行選擇。 |
3、末行模式中的基本操作
在命令模式中按冒號":"鍵可以切換到末行模式,vi編輯器的最后一行中將顯示":"提示符,用戶可以在該提示符后輸入特定的末行命令,完成保存文件,退出編輯器。
指令行的儲存、離開等指令 | ||||
:w | 保存文件及退出vi編輯器 | |||
:w /root/XXX | 將當前編輯的文件另存到/root目錄下,文件名為XXX。 | |||
:q | 退出編輯器。 | |||
:q! | 不保存並退出。 | |||
:wq或x | 保存並退出。 | |||
:set nu | 顯示行號,設定之后,會在每一行的前綴顯示該行的行號 | |||
:set nonu | 與 set nu 相反,為取消行號! |
作者:JackTian 出處:https://www.cnblogs.com/jacktian-it/ 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 如果文中有什么錯誤,歡迎指出。以免更多的人被誤導。