厚書讀薄丨《Vim實用技巧》第六部分工具

2021-10-21 08:36:05 字數 3717 閱讀 1069

ctags是乙個外部程式(要自己安裝),它通過掃瞄**庫,生成關鍵字的索引。

ctags的使用

配置vim使用ctags

我們可以在工程的每乙個子目錄中都建立乙個標籤檔案,或者為了簡單起見,只在工程的根目錄中維護乙個全域性的標籤檔案即可。

ctags的更新

但是編輯器之外的改動還是沒辦法及時更新,維護這個標籤檔案實在麻煩, 所以這個ctags我感覺還是比較雞肋

quickfix 列表會維護一組由檔名、行號、列號(可選)與訊息組成的注釋定位資訊。

⭐️ 不用離開vim也能編譯**

quickfix列表

命令用途

:cnext跳轉到下一項

:cprev跳轉到上一項

:cfirst跳轉到第一項

:clast跳轉到最後一項

:cnfile跳轉到下乙個檔案中的第一項

:cpfile跳轉到上乙個檔案中的最後一項

:cc n跳轉到第n項

:copen開啟quickfix視窗

:cclose關閉quickfix視窗

位置列表

定製外部編譯器

讓vim解析不同外部編譯器的報錯資訊,使得它可以填充quickfix列表

⭐️ 可以將makeprgerrorformat儲存到某個檔案裡,然後利用:compiler命令來啟用它

在vim的術語中,編譯器是指任何可以針對我們的文件進行處理,並生成錯誤或警告列表的外部程式。而:make命令只負責呼叫外部編譯器,並對其輸出進行解析,以此構建乙個可供瀏覽的quickfix列表,因此編譯器也可以是**檢查或者是什麼轉換器之類的

vim的:grep命令給外部 grep(或類似 grep的)程式提供了一層封裝

在命令列執行grep

需要自己根據結果去往對應檔案的對應行

在vim內部呼叫grep

定製:grep

grepformat選項則指示vim如何解析來自:grep命令的輸出結果

ack替換grep

ack.vim外掛程式可以完全模擬ack的行為

使用:vimgrep

vim的自動補全可以在插入模式下被觸發,vim首先會根據當前編輯會話內所有緩衝區的內容建立乙份補全列表,然後再檢測游標左側的字元,看能否找到單詞的一部分。如果找到的話,會用這個未完成的單詞對補全列表進行過濾,所有不是以它開頭的內容都將被過濾掉。最終的補全列表將以選單形式出現,供我們選擇。

大小寫敏感問題:

觸發vim自動補全的方式

命令補全型別

普通關鍵字

當前緩衝區關鍵字

包含檔案關鍵字

標籤檔案關鍵字

字典查詢

整行補全

檔名補全

全能(omni)補全

與自動補全的彈出式選單進行互動

按鍵操作

作用使用來自補全列表的下乙個匹配項(next匹配項)

使用來自補全列表的上乙個匹配項(previous匹配項)

選擇來自補全列表的下乙個匹配項

選擇來自補全列表的上乙個匹配項

確認使用當前選中的匹配項(yes)

還原最早輸入的文字(從自動補全中exit)

/從當前匹配項中刪除乙個字元

從當前匹配項中增加乙個字元

中止自動補全並插入字元

當前緩衝區補全:根據當前緩衝區的內容生成補全列表 (

包含檔案補全(

標籤檔案補全(

普通關鍵字補全(

字典單詞自動補全(

整行文字補全

檔名自動補全

全能補全

vim的拼寫檢查器可以幫助人們更容易地查詢並更正拼寫錯誤

vim的發行版通常只為英語提供了拼寫檔案,但是安裝其他語言的拼寫檔案也絕非難事。

:set spell啟用vim內建的拼寫檢查器

我們可以用[s]s命令在拼寫錯誤間相應地進行反向及正向跳轉

游標位於某個拼錯單詞之上時,可以通過z=命令來獲取vim提供的更正建議列表

常用命令

命令用途

]s跳到下一處拼寫錯誤

[s跳到上一處拼寫錯誤

z=為當前單詞提供更正建議

zg把當前單詞新增到拼寫檔案中

zw把當前單詞從拼寫檔案中刪除

zug撤銷對當前單詞的zgzw命令

配置spelllang選項,可以我們更改預設的拼寫字典

維護專用詞典

更正拼寫錯誤

定製自己的vimrc

⭐️ vim的選項:h option-list

有些vim設定項的引數要用到字串或者數字

可以用一條 set 語句設定多組選項

大多數vim選項都有其簡寫形式

:setlocal命令所觸發的改動,只會影響當前視窗或者緩衝區(除非該選項只能被設定為全域性性的)

我們可以將定製化的選項寫入檔案,加以儲存。此後,我們可以通過:source命令,將指定中的設定項應用於當前的編輯會話

為特定型別的檔案應用個性化設定

大量的設定最好使用**檔案型別外掛程式(ftplugin)**來為不同檔案型別進行定製。

把書看薄,再看厚

一直以來有許多讀者問我 你的書都那麼厚一本,看起來真費勁,那麼多內容,好像都是重點,看完後卻記不住多少,該怎麼辦?怎樣的看書方法效果會更好?這的確是事實,在我的 網管員必讀 包括第一版和第 2版 和 網路工程師必讀 兩大系列中每本都是厚厚的一大本,少則 500來頁,多則 700來頁。第一版 網管員必...

把書看薄,再看厚

一直以來有許多讀者問我 你的書都那麼厚一本,看起來真費勁,那麼多內容,好像都是重點,看完後卻記不住多少,該怎麼辦?怎樣的看書方法效果會更好?這的確是事實,在我的 網管員必讀 包括第一版和第 2版 和 網路工程師必讀 兩大系列中每本都是厚厚的一大本,少則 500來頁,多則 700來頁。第一版 網管員必...

把書看薄,再看厚

一直以來有許多讀者問我 你的書都那麼厚一本,看起來真費勁,那麼多內容,好像都是重點,看完後卻記不住多少,該怎麼辦?怎樣的看書方法效果會更好?這的確是事實,在我的 網管員必讀 包括第一版和第 2版 和 網路工程師必讀 兩大系列中每本都是厚厚的一大本,少則 500來頁,多則 700來頁。第一版 網管員必...