Linux編譯四元件(一):Vim教程
本文已參與「新人創作禮」活動,一起開啟掘金創作之路。
Vim
Vim
是從 vi
發展出來的一個文字編輯器。
程式碼補全、編譯及錯誤跳轉等方便程式設計的功能特別豐富,在程式設計師中被廣泛使用,和Emacs並列成為類Unix系統使用者最喜歡的文字編輯器。
我們可以通過Vim
程式碼編輯器進行程式的書寫.
Vim普遍被推崇為類Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。
1999 年Emacs被選為Linuxworld文字編輯分類的優勝者,Vim屈居第二。 但在2000年2月Vim贏得了Slashdot Beanie的最佳開放原始碼文字編輯器大獎,又將Emacs推至二線 總的來看, Vim和Emacs在文字編輯方面都是非常優秀的。
- 我們可以通過使用者手冊指令
man
檢視系統給出的資訊: 輸入指令man vim
vimtutor
vim官方自帶的學習教程vimtutor
(如果顯示中文請跳過該部分)
如果您進入之後是全英的,那麼恭喜你獲得了提升英語文字閱讀的能力,但如果您還是希望強調舒適感,這裡也提供了漢化顯示的教程.
在終端輸入指令: ①
echo "LANG=\"zh_CN.UTF-8\"" >> ~/.bashrc
② source ~/.bashrc
執行完兩句指令在進入vimtutor
就會變成漢語了~
系統給出的資訊
輸入指令 man vimtutor
檢視 vimtutor 詳細資訊
vimtutor
教程的設計思路是在使用中進行學習的。也就是說,您需要通過實際執行命令來學習它們本身的正確用法。
如果您只是閱讀而不操作,那麼您可能會很快遺忘這些命令的!
接下來我們在終端輸入vimtutor
,來具體檢視命令操作,閱讀領略一下vim
支援的"豐富繽紛"的指令.
vim指令
這裡提供一份大佬製作的鍵盤圖 與 常用命令速查:
下面列舉一些常見的指令,這些指令都是在普通模式下執行的:
vim中有
5
種模式:普通模式,插入模式,命令模式,可視模式,替換模式.
-
h
向左移動l
向右移動j
向下移動k
向上移動 在非圖形化介面,使用指令進行移動就顯得尤為重要,在Linux系統環境下程式設計儘量使用這四個鍵來代替方向鍵 但是如果想要輸入這幾個字母,就要切換至插入模式,才能用於編輯文字 -
以下都是進入==插入模式==:
i
在游標之前插入文字a
在游標之後插入文字I
在本行行首插入文字 (shift + i)A
在本行行末插入文字 (shift + a) -
:
進入==命令模式==:w
儲存:q
退出:q!
不儲存修改,直接強制退出:wq
儲存並推出 -
r
進入==替換模式==R
替換多個文字 (shift + r) -
v
進入==可視模式==,意為選擇模式 1.按v
進入可視模式 2.游標向右移,選中想要複製的文字 3.按y
複製在剪下板 (vim的剪下板)與Windows的剪下板不互通 4.按p
粘貼出來 [以上操作僅限於Vmware
中]ym
複製這個單詞yy
複製一整行 -
esc
返回==正常模式== -
x
刪除游標處文字 -
dw
(delete word)
從游標當前位置直到下一個單詞開始處,不包括它的第一個字元
de
從游標當前位置直到本單詞末尾,包括最後一個字元
(如果是中文的話,刪除到第一個不是中文的地方)
db
向前刪除一個單詞
d$
刪除到當前整行行末
d2w
刪除兩個單詞,游標置於單詞首
d2e
刪除兩個單詞,游標置於單詞尾
dd
一次刪除一整行
2dd
一次刪除兩行
(dd其實並未物理刪除,而是儲存在了`貼上板`,`p`貼上在游標**後**,`P`貼上在游標**前**)
數字 + w
使游標向後移動 ~ 個單詞,游標置於單詞首部
數字 + b
使游標向前移動 ~ 個單詞,游標置於單詞首部
數字 + e
使游標向後移動 ~ 個單詞,游標置於單詞末尾
u
(undo) 撤銷一次操作
U
撤銷整行操作 (shift + u)
Ctrl + r
反撤銷(重做)
Ctrl + z
把 vim 放在後臺
fg
再切換出來
cw
(change word)
[與dw
不同的是:進入了插入模式]
刪除到單詞末尾,同時進入插入模式
ce
cb
c$
c2w
都同之前的d~
操作
-
Ctrl + g
顯示當前游標位置與檔案資訊 -
gg
來到檔案開頭 -
G
來到檔案末尾(shift + g) -
行號跳轉
:492
492 shift + g
-
兩次引號''
回到上次跳轉位置 -
set nu
在左側設定行號 <---->set nonu
取消行號 -
/ + 單詞
,從前向後查詢內容 再點選n
,下一個單詞 再點選N
,上一個單詞(shift + n) -
? + 單詞
從後向前查詢 -
shift + f5
也就是(%) 找到匹配括號 找到( ),[ ],{ },其中一個所對應的另一個 [==可以用於跳轉到函式末尾==] -
:s /被替換內容/想要替換成為的內容/ g
--->g
表示整行所有內容
:s /被替換內容/想要替換成為的內容/ gc
--->gc
每次替換前都會詢問是否替換
:%s /被替換內容/想要替換成為的內容/ g
--->整個檔案替換
:行號,行號 s /被替換內容/想要替換成為的內容/ g
--->指定行內容替換
(這裡行號的分隔符不一定要用,
同:
也可以)
-
:!
執行外部命令:!ls
不退出 vim 情況下使用Linux系統指令 -
o
在當前行的下方建立新行 ----小寫字母oO
在當前行上方建立新行(shift + o) -
0
移動游標到行首----數字0$
移動游標到行末
每一次啟動檔案都需要重新輸入指令,那麼有沒有什麼辦法可以使得效果得以儲存?
可以通過固化配置功能:
1.在終端上cd
回到home目錄
2.輸入指令vim .vimrc
(這裡Linux中以.
開頭的檔案為隱藏檔案,ll -a
可以檢視到)
3.進入後點擊i
進入插入模式輸入set nu
4.:wq
儲存退出
之後再開啟就是預設設定行號了
總結
如此豐富的快捷鍵和指令集合,一時半會也無法全部掌握,這就要求學者在使用中總結,學以致用,通過反覆操作,練就肌肉記憶,同時切勿死記硬背,到頭來只是敗倒在龐雜的指令體系中,所以一定要戰略性學習~