-Git Linux vi/vim 命令 按鍵 MD

Markdown版本筆記 個人GitHub首頁 個人博客 個人微信 個人郵箱
MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com

目錄

參考教程
史上最全Vim快捷鍵鍵位圖 — 入門到進階linux

Linux vi/vim 簡介

全部的 Unix Like 系統都會內建 vi 文書編輯器,其餘的文書編輯器則不必定會存在。git

可是目前咱們使用比較多的是 vim 編輯器。程序員

Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用github

簡單的來講, vi 是老式的字處理器,不過功能已經很齊全了,可是仍是有能夠進步的地方。 vim 則能夠說是程序開發者的一項很好用的工具。編程

連 vim 的 官方網站 本身也說 vim 是一個程序開發工具而不是文字處理軟件。vim

vim 鍵盤圖:微信

vi/vim 的使用

基本上 vi/vim 共分爲三種模式,分別是命令模式(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鍵可隨時退出底線命令模式。

vi/vim 使用實例

使用 vi/vim 進入通常模式

若是你想要使用 vi 來創建一個名爲 runoob.txt 的文件時,你能夠這樣作:

$ vim runoob.txt

直接輸入** vi 文件名 **就可以進入 vi 的通常模式了。請注意,記得 vi 後面必定要加文件名,無論該文件存在與否!

按下 i 進入輸入模式,開始編輯文字

在通常模式之中,只要按下 i, o, a 等字符就能夠進入輸入模式了!

在編輯模式當中,你能夠發如今左下角狀態欄中會出現–INSERT-的字樣,那就是能夠輸入任意字符的提示。

這個時候,鍵盤上除了 Esc 這個按鍵以外,其餘的按鍵均可以視做爲通常的輸入按鈕了,因此你能夠進行任何的編輯。

按下 ESC 按鈕回到通常模式

好了,假設我已經按照上面的樣式給他編輯完畢了,那麼應該要如何退出呢?是的!沒錯!就是給他按下 Esc 這個按鈕便可!立刻你就會發現畫面左下角的 – INSERT – 不見了!

在通常模式中按下 :wq 儲存後離開

OK,咱們要存檔了,存盤並離開的指令很簡單,輸入 :wq 便可保存離開!

OK! 這樣咱們就成功建立了一個 runoob.txt 的文件。

vi/vim 按鍵說明

除了上面簡易範例的 i, Esc, :wq 以外,其實 vim 還有很是多的按鍵可使用。

通常模式下操做按鍵

移動光標

按鍵 效果
h 或 向左箭頭鍵(←) 向左移動一個字符,30h30←組合按鍵表示向左移動 30 個字符
l 或 向右箭頭鍵(→) 向右移動一個字符,30l30→組合按鍵表示向右移動 30 個字符
j 或 向下箭頭鍵(↓) 向下移動一個字符,30j30↓組合按鍵表示向下移動 30 行
k 或 向上箭頭鍵(↑) 向上移動一個字符,30k30↑組合按鍵表示向上移動 30 行
[Ctrl] + [f] 屏幕向下移動一頁,至關於 Page Down按鍵
[Ctrl] + [b] 屏幕向上移動一頁,至關於 Page Up 按鍵
[Ctrl] + [d] 屏幕向下移動半頁
[Ctrl] + [u] 屏幕向上移動半頁
+ 光標移動到非空格符的下一行
- 光標移動到非空格符的上一行
n<space> 按下數字後再按空格鍵,光標向右移動 n 個字符
n<Enter> 按下數字後再按回車鍵,光標向下移動 n 行
數字 0 或功能鍵[Home] 移動到這一行的最前面字符處
$ 或功能鍵[End] 移動到這一行的最後面字符處
H 光標移動到這個屏幕的最上方那一行的第一個字符
M 光標移動到這個屏幕的中央那一行的第一個字符
L 光標移動到這個屏幕的最下方那一行的第一個字符
G 移動到這個檔案的最後一行
nG 例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu)
gg 移動到這個檔案的第一行(至關於 1G)

搜索、替換

按鍵 效果
/word 向光標之下尋找一個名稱爲 word 的字符串
?word 向光標之上尋找一個字符串名稱爲 word 的字符串
n 這個 n 是英文按鍵。表明重複前一個搜尋的動做
N 這個 N 是英文按鍵。與 n 恰好相反,爲『反向』進行前一個搜尋動做
:n1,n2s/word1/word2/g 在第 n1 與 n2 行之間尋找 word1 這個字符串,並將其取代爲 word2
:1,$s/word1/word2/g:%s/word1/word2/g 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2
:1,$s/word1/word2/gc:%s/word1/word2/gc 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 ,且在取代前顯示提示字符給用戶確認 (confirm) 是否須要取代

刪除

按鍵 效果
x 在一行字當中,向後刪除一個字符,至關於 [del] 鍵)
X 在一行字當中,向前刪除一個字符,至關於 [backspace] 鍵
nx n 爲數字,連續向後刪除 n 個字符
dd 刪除遊標所在的那一整行
ndd n 爲數字,刪除光標所在的向下 n 行
d1G 刪除光標所在到第一行的全部數據
dG 刪除光標所在到最後一行的全部數據
d$ 刪除遊標所在處,到該行的最後一個字符
d0 那個是數字的 0 ,刪除遊標所在處,到該行的最前面一個字符

複製、粘貼

按鍵 效果
yy 複製遊標所在的那一行
nyy n 爲數字。複製光標所在的向下 n 行
y1G 複製遊標所在行到第一行的全部數據
yG 複製遊標所在行到最後一行的全部數據
y0 複製光標所在的那個字符到該行行首的全部數據
y$ 複製光標所在的那個字符到該行行尾的全部數據
p 將已複製的數據粘貼在遊標所在的那一行的下一行
P 將已複製的數據粘貼在遊標所在的那一行的上一行,原遊標所在那一行會被推後
J 將光標所在行與下一行的數據結合成同一行
c 重複刪除多個數據,例如向下刪除 10 行,10cj
u 撤銷前一個操做
[Ctrl]+r 重作上一個被撤銷的操做
. 小數點!意思是重複前一個動做的意思

通常模式切換到編輯模式按鍵

按鍵 效果
i 進入輸入模式(Insert mode),從目前光標所在處開始輸入
I 進入輸入模式,在目前所在行的第一個非空格符處開始輸入
a 進入輸入模式,從目前光標所在的下一個字符處開始輸入
A 進入輸入模式,從光標所在行的最後一個字符處開始輸入
o 進入輸入模式,在目前光標所在的下一行處輸入新的一行
O 進入輸入模式,在目前光標所在處的上一行輸入新的一行
r 進入取代模式(Replace mode),r 只會取代光標所在的那一個字符一次
R 進入取代模式,R會一直取代光標所在的文字,直到按下 ESC 爲止
[Esc] 退出編輯模式,回到通常模式中

上面這些按鍵中,在 vi 畫面的左下角處會出現--INSERT----REPLACE--的字樣。特別注意的是,咱們上面也提過了,你想要在檔案裏面輸入字符時, 必定要在左下角處看到 INSERT 或 REPLACE 才能輸入喔!

通常模式切換到指令行模式按鍵

指令行的儲存、離開等指令

按鍵 效果
:w 將編輯的數據寫入硬盤檔案中
:w! 若文件屬性爲『只讀』時,強制寫入該檔案
:q 離開 vi
:q! 若曾修改過檔案,又不想儲存,使用 ! 爲強制離開不儲存檔案
:wq 儲存後離開,若爲 :wq! 則爲強制儲存後離開
ZZ 若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開
:w [filename] 將編輯的數據儲存成另外一個檔案
:r [filename] 將 filename 這個檔案內容加到遊標所在行後面
:n1,n2 w [filename] 將 n1 到 n2 的內容儲存成 filename 這個檔案
:! command 暫時離開 vi 到命令行模式下執行 command 的顯示結果!例如:! ls

環境設定

按鍵 效果
:set nu 顯示行號,設定以後,會在每一行的前綴顯示該行的行號
:set nonu 與 set nu 相反,爲取消顯示行號!
:set hlsearch 搜索到的關鍵字反白顯示 (默認)
:set nohlsearch 搜索到的關鍵字取消反白顯示
:set autoindent 自動縮排 (默認)
:set noautoindent 不自動縮排
:set backup 自動存儲備份檔,備份檔名爲 filename~
:set ruler 顯示右下角狀態說明
:set showmode 顯示左下角狀態說明,好比 INSERT
:set backspace=(012) 倒退鍵設置;2:能夠刪除任意值
:set all 顯示全部環境參數設定值
:set 顯示與系統默認值不一樣的設定值
:syntax on 開啓語法着色
:syntax off 關閉語法着色
:set bg=dark 開啓語法着色深色方案
:set bg=light 開啓語法着色淺色方案 (默認)

2019-7-7

相關文章
相關標籤/搜索