1. 程式人生 > 實用技巧 >10個高效Linux技巧及Vim命令對比

10個高效Linux技巧及Vim命令對比

Vim的很多命令和功能與Linux系統的命令和功能及其相似,可以說是一脈相承。Vim教程網(https://vimjc.com)總結了10條Linux下提高效率的小技巧,並與Vim對應命令進行對比。

(1) <Ctrl a>:Linux 命令列下執行該命令,將游標移動到行首 (a 是 ahead 的縮寫)

快速移動游標,不僅是在 Vim 下的高優需求,也是 Linux 命令列下的常見工作場景。

例如,在 Linux 命令列下敲完了一長串命令後,如果想在前面先執行一個命令,則可以按組合鍵 <Ctrl a> 將游標移動到行首,輸入想新增的命令。

Vim 下也有將游標快速移動到行首的實用命令。在 Vim 普通模式下,使用 0

可以將游標移動到當前游標所在行的行首,使用 ^ 可以在Vim下移動游標到當前行的第一個非空字元。

(2) <Ctrl e>:Linux 命令列下執行該命令,將游標移動到行尾 (e 是 end 的縮寫)

既然有將游標快速移動到行首的需求,自然也有將游標快速移動到行尾的需求。與組合鍵 <Ctrl a> 對應的命令 <Ctrl e> 會將游標移動到行尾,方便繼續輸入要執行的命令。

Vim 下也有將游標快速移動到行尾的命令。在 Vim 普通模式下,使用 $ 可以將游標移動到當前行的行尾,而使用 A 命令可以將游標移動到當前行的行尾,並進入插入模式

(3)
<Ctrl r>:Linux 命令列下執行該命令,會進入歷史命令查詢視窗,輸入要查詢的命令可快速選擇歷史命令

個人覺得,<Ctrl r> (r 是 retrieve (檢索) 的縮寫)命令是一個非常實用的 Linux 技巧。當需要在已經執行過的歷史命令中 (即 history 命令的結果) 查詢某條命令並再次執行該命令時,可以使用 <Ctrl r> 調出 Linux 歷史命令的搜尋視窗,並輸入要查詢的目前命令進行查詢並重新執行之。

當然可以通過 history | grep xxx 在已執行的歷史命令列表中找到名為 xxx 的命令,然後複製該命令再重複執行之。

毋庸置疑,<Ctrl r> 相比上述的步驟更加高效、便捷。

Vim 裡的模糊搜尋外掛 ctrlp 跟 Linux 終端命令列下執行 <Ctrl r> 的功能非常相似。推薦將 ctrlp 作為你的一個必備 Vim 外掛。

(4) <Ctrl w>:Linux 命令列下執行該命令,會刪除當前游標附近的一個詞 (以空格隔開的字串)

刪除當前游標附近的一個詞,這是工作中經常遇到的一個場景。在命令列輸入命令時,經常會因為輸入失誤或改變命令而需要進行刪除,使用退格鍵 (Backspace) 一個個刪除字元的效率太低了,如果能一次刪除一個單詞,將會極大減少按鍵次數,整體提高Linux使用效率。

w 表示以一個空格隔開的字串,這在 Vim 下也是相同的概念。推薦閱讀:Vim基於單詞移動及Vim單詞、字串概念

(5) <Ctrl u>:Linux 命令列下執行該命令,會刪除命令列上已經敲出來的所有文字 (即刪除整行)

經常在工作中需要取消已經敲出了一長串的命令。除了可以使用 <Ctrl c> 提前中斷本次即將執行的命令外,還可以使用 <Ctrl u> 刪除命令列上所有已經輸入的字元。

個人覺得,<Ctrl u> 的實用性其實不大,畢竟已經有了組合命令 <Ctrl c> 能完成同樣的操作,其被大家所熟知。

<Ctrl c> 用於中斷程式的執行,而 <Ctrl z> 用於暫停程式的執行 (可通過 fg 命令恢復)。

在 Vim 下,可以使用 dd 命令快速刪除當前游標所在行。

(6) <Ctrl y>:Linux 命令列下執行該命令,將貼上 <Ctrl w><Ctrl u> 等命令刪除的文字

當刪除了 Linux 命令列中已經輸入的某些字元後,可以在適當的時機將之再粘貼出來以便再次使用。

熟悉 Vim 基本命令的都知道,y 在 Vim 命令集中是 yank 的縮寫,表示 複製 功能。Vim 下經常使用 yy 命令複製文字。

聰明如斯的你,肯定是記住了 yy 命令,自然也就記住了 <Ctrl y> 命令哦~ (這也是為什麼要在本文中將這些 Linux 實用技巧與 Vim 命令進行對比說明的原因)

(7) !xx關鍵字:Linux 命令列下執行該命令,會執行最近一條包含有 xx關鍵字 的歷史命令

history 命令記錄了 Linux 系統最近執行過的歷史命令列表。如果需要重複執行最近一條包含有 xx關鍵字 的命令,可以使用 !xx關鍵字

! 真是使用 Linux 下的一個操作神器。可以使用它快速執行一條歷史命令,既避免了重複的按鍵輸入,又減少了通過翻 "↑" 箭頭人肉查詢歷史命令的工作量。

如果包含有 xx關鍵字 的歷史命令有多條,且本次希望執行的目標命令並不是隔當前時間最近的一條,則還可以使用 !行號n 的方式指定執行 history 列表中行號為 n 的命令。

可以看出,! 既可以使用關鍵字指定要執行的歷史命令,也可以通過行號精確指定要執行的歷史命令。推薦使用搜索引擎搜尋關鍵字 "linux 驚歎號" 閱讀更多相關內容的細節。

Vim 下好像並沒有與之功能類似的命令?

(8) cd -:Linux 命令列下執行該命令,會將當前目錄切換到上一次所在目錄

在 Linux 命令列下進行操作時,經常遇到辛辛苦苦進入到一個很深的目錄並執行一些操作後,不小心輸入了 cd 命令切換回了當前使用者根目錄的情況。再次輸入完整的深層次目錄或通過翻 "↑" 鍵以便再次進入該目錄顯然是一個很 "蠢笨" 的方法。

在 Linux 下,假設當前所在目錄為 a,通過 cd 某路徑 命令切換到了 b 目錄後,使用 cd - 命令可快速切換回 a 目錄哦。

(9) <Shift Insert>:Linux 命令列下執行該命令,可貼上複製到系統剪下板上的內容

在 Linux 命令列下,除了可以使用滑鼠右鍵貼上複製的文字外,還可以使用組合鍵 <Shift Insert> 完成貼上操作。

據說,極客型 Linux 玩家可以做到不使用滑鼠完成所有的日常工作。<Shift Insert> 進行文字貼上顯然可以減少使用滑鼠的頻率。在使用 xshell 等遠端終端模擬軟體時,使用 <Shift Insert> 是不是一個更加高效、便捷的文字貼上方法呢?

<Ctrl Insert> 用於複製已選中的命令列控制檯文字 (不是 <Ctrl c> 哦)。

(10) <Ctrl l>:Linux 命令列下執行該命令,可清空當前螢幕

Linux 下可以使用 clear 命令清空整個螢幕,<Ctrl l> 可達到同樣的效果。

Vim 下,zz 命令可用來重繪螢幕並把當前行顯示在視窗正中。更多Vim實用技巧,推薦閱讀《30個Vim常用命令和使用技巧整理》

除此之外,還有一些比較不為人熟知的小技巧,例如,連續按3次 Esc 鍵可顯示當前系統支援的所有命令,<Ctrl [ 相當於 Esc 鍵的功能,<Ctrl i> 等價於 Tab 鍵的功能等。

轉:https://zhuanlan.zhihu.com/p/93483204