我正在使用Ctrl - ]在Vim中使用Ctags進行導航。 如果有多個匹配,我該如何導航到備用文件?如何在Vim中導航多個ctags匹配項?
Ex。 something.publish
在含有publish
多次出現一個代碼庫:
class Foo
def publish
end
end
class Bar
def publish
end
end
我正在使用Ctrl - ]在Vim中使用Ctags進行導航。 如果有多個匹配,我該如何導航到備用文件?如何在Vim中導航多個ctags匹配項?
Ex。 something.publish
在含有publish
多次出現一個代碼庫:
class Foo
def publish
end
end
class Bar
def publish
end
end
:tn[ext]
進入到下一個標籤,:tp[revious]
轉到以前的一個。 :ts[elect]
爲您提供了一個可供選擇的列表。
:help tag-matchlist
更多有趣和令人興奮的事情嘗試!
使用g]
而不是C-]
獲取所有匹配的列表。
您可能需要閱讀:help g]
添加我最終尋找的情況下,它可以幫助別人的答案:
g<C-]>
將跳轉到該標籤如果只有一場比賽,然後會出現一個列表如果有多個匹配。
我已經添加了這個映射到我的.vimrc讓它做我想做的默認:
nnoremap <C-]> g<C-]>
ltag
ltag the_tag_name
lopen
打開一個窗口的位置與標籤火柴。
這與正則表達式標籤搜索特別強大:
ltag /tag_na
lopen
這將列出包含字符串tag_na
(因此包括the_tag_name
)的所有標籤。
然後,您可以進一步搜索位置列表中的內容,然後按Enter鍵跳轉到標記。
要將光標下使用它的話,你可能要定義的地圖:
nnoremap <leader>l exec("ltag ".expand("<cword>"))<CR>
然後,如果你是一個標籤瘋子跟我一樣:
command! -nargs=1 Ltag silent ltag <args> | execute "normal \<C-o>" | tab lopen
將開啓帶有位置列表和所有匹配的新標籤,而不是直接跳轉到標籤頁:
:Ltag /my_struct