目錄html
Markdown版本筆記 | 個人GitHub首頁 | 個人博客 | 個人微信 | 個人郵箱 |
---|---|---|---|---|
MyAndroidBlogs | baiqiantao | baiqiantao | bqt20094 | baiqiantao@sina.com |
參考教程
史上最全Vim快捷鍵鍵位圖 — 入門到進階linux
全部的 Unix Like 系統都會內建 vi 文書編輯器,其餘的文書編輯器則不必定會存在。git
可是目前咱們使用比較多的是 vim 編輯器。程序員
Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用
。github
簡單的來講, vi 是老式的字處理器,不過功能已經很齊全了,可是仍是有能夠進步的地方。 vim 則能夠說是程序開發者的一項很好用的工具。編程
連 vim 的 官方網站 本身也說 vim 是一個程序開發工具而不是文字處理軟件。vim
vim 鍵盤圖:微信
基本上 vi/vim 共分爲三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。編輯器
用戶剛剛啓動 vi/vim,便進入了命令模式。工具
此狀態下敲擊鍵盤動做會被Vim識別爲命令,而非輸入字符。好比咱們此時按下i,並不會輸入一個字符,i被看成了一個命令。
如下是經常使用的幾個命令:
i
:切換到輸入模式,以輸入字符。x
:刪除當前光標所在處的字符。:
:切換到底線命令模式,以在最底一行輸入命令。若想要編輯文本:啓動Vim,進入了命令模式,按下i,切換到輸入模式。
命令模式只有一些最基本的命令,所以仍要依靠底線命令模式輸入更多命令。
在命令模式下按下i就進入了輸入模式(也稱爲編輯模式)。在輸入模式中,可使用如下按鍵:
在命令模式下按下:
(英文冒號)就進入了底線命令模式。
底線命令模式能夠輸入單個或多個字符的命令,可用的命令很是多,基本的命令有(已經省略了冒號):
按ESC鍵可隨時退出底線命令模式。
若是你想要使用 vi 來創建一個名爲 runoob.txt
的文件時,你能夠這樣作:
$ vim runoob.txt
直接輸入** vi 文件名 **就可以進入 vi 的通常模式了。請注意,記得 vi 後面必定要加文件名,無論該文件存在與否!
在通常模式之中,只要按下 i, o, a 等字符就能夠進入輸入模式了!
在編輯模式當中,你能夠發如今左下角狀態欄中會出現–INSERT-
的字樣,那就是能夠輸入任意字符的提示。
這個時候,鍵盤上除了 Esc 這個按鍵以外,其餘的按鍵均可以視做爲通常的輸入按鈕了,因此你能夠進行任何的編輯。
好了,假設我已經按照上面的樣式給他編輯完畢了,那麼應該要如何退出呢?是的!沒錯!就是給他按下 Esc 這個按鈕便可!立刻你就會發現畫面左下角的 – INSERT –
不見了!
OK,咱們要存檔了,存盤並離開的指令很簡單,輸入 :wq 便可保存離開!
OK! 這樣咱們就成功建立了一個 runoob.txt
的文件。
除了上面簡易範例的 i, Esc, :wq 以外,其實 vim 還有很是多的按鍵可使用。
按鍵 | 效果 |
---|---|
h 或 向左箭頭鍵(←) | 向左移動一個字符,30h 或30← 組合按鍵表示向左移動 30 個字符 |
l 或 向右箭頭鍵(→) | 向右移動一個字符,30l 或30→ 組合按鍵表示向右移動 30 個字符 |
j 或 向下箭頭鍵(↓) | 向下移動一個字符,30j 或30↓ 組合按鍵表示向下移動 30 行 |
k 或 向上箭頭鍵(↑) | 向上移動一個字符,30k 或30↑ 組合按鍵表示向上移動 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