1. 程式人生 > 其它 >AcWing 876. 快速冪求逆元

AcWing 876. 快速冪求逆元

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

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

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

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

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

可以將游標移動到當前游標所在行的行首,使用^可以在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鍵的功能等。

更多 Linux 和 Vim 實用技巧,期待你來跟我分享~