Linux編輯器 vim的tag29 4

2021-05-24 23:21:26 字數 1408 閱讀 6134

29.4查詢全域性識別符號

你正在編寫c程式,並且想知道乙個變數是被宣告為int或者unsigned。乙個發現這個的快速方法是使用[i命令。

假設游標在column這個字上,輸入[i,vim會列出匹配的所有行。不僅僅在當前檔案,所有包含檔案,和包含檔案中包含的檔案,都會列出。

這種方式相對於使用tags和分屏的好處就是包含檔案也被搜尋。多數情況下,這將會正確的找到宣告。即使tags檔案過期了,或者你沒有對於包含檔案的tags檔案。

當然,一些事情必須正確,才能保證[i完成它的工作。首先,include選項必須指明檔案如何被包含。預設是對於c和c++。其他語言,你必須自己去設定。

載入包含檔案

vim將會在使用path選項指明的地方查詢包含檔案。如果目錄不正確,一些包含檔案將不能被找到。你可以使用如下命令檢視:

:checkpath

它將會列出所有不能找到的包含檔案。當然,也會列出發現的包含沒有發現檔案的包含檔案。

注意:vim不是乙個編譯器。它不能夠識別#ifdef語句。這意味著每個#include語句都被用以包含,即使其在#if never的語句後邊。

解決檔案不能被找到的錯誤,增加乙個目錄到path選項。乙個找到這些資訊的好地方是makefile。查詢-i的項,例如 -i/usr/local/x11。把這些目錄增加到path:

:set path+=/usr/local/x11。

你可以使用萬用字元:

:set path+=/usr/*/include

使用**意味著所有的子目錄,例如:

:set path+=/projects/invent/**/include

你可以看看乙個包含檔案是否真的被找到:

:checkpath!

你將獲取乙個包含檔案的列表,列出包含的檔案等。為了將這個列表減少,vim對於那些已經在之前顯示的包含檔案,顯示already listed,並且不再在那顯示。

跳轉到乙個匹配

[i 僅僅處理list文字的一行。當你希望對於第乙個item有近距離**的時候,使用如下命令跳**

[你也可使用 [ ctrl-i,因為其作用相同。當你想跳轉到不是第乙個的其他item,你可以在命令前打出乙個行號:

3[上述將跳轉到list中第三個item。注意,你可以使用ctrl-0跳回到你開始的地方。

[i  僅僅列出第乙個匹配

]i  僅僅列出在游標下的項

]i僅僅列出游標下的第一項

查詢定義的識別符號

[i命令發現任何識別符號。僅僅查詢巨集,即以#define開始的定義,使用如下命令:

[d這也是在include檔案中進行的。define選項指明對於[d的定義的item的行的樣子。你可以將其改變,以適應不同的除了c和c++外的語言。

[d        第乙個匹配

]d      游標下的匹配

]d      游標下的第乙個匹配

Linux編輯器 vim的tag29 2

29.2 之前的window 當你編輯包含函式呼叫的 的時候,你需要使用正確的引數。知道傳遞什麼樣的值,你需要檢視函式的定義。tags機制非常適合這個。更好的是定義被顯示在另外乙個window。這樣,之前的window可以使用。開啟乙個之前的window來顯示函式 write char ptag w...

Linux編輯器 vim的tag29 1

vim是linux下一款功能十分強大的編輯器。將vim打造成程式設計利器,不僅僅需要學習vim的用法,還需要使用一些外掛程式。首先介紹vim中標籤的用法。以下是對vim幫助的29章進行的翻譯 29.1使用tags tags是定義識別符號的地方。例如在c和c 程式中的函式定義。tags的列表在乙個ta...

Linux的vim編輯器

vim編輯器常用的三種模式 vim 檔案路徑 進入編輯器,編輯該檔案 例 vim etc passwd dd 刪除游標所在的一行 ndd 刪除游標所在的向下的n行 yy 複製游標所在的一行 nyy 複製游標所在的向下的n行 np 重複貼上幾行 剪下,貼上 先dd,再p u 撤銷上一步操作 0 數字 ...