簡體   English   中英

VIM在.vimrc中設置了ctags

[英]VIM set ctags in .vimrc

我在/ srv / http / dev文件夾中有我的項目。 我為一個項目生成了ctags文件:

$ ctags -R --languages=php .

現在我設置ctags路徑:

:set tags=/srv/http/dev/proj/tags

它工作正常。

但我在dev /文件夾中有很多項目。 如何在.vimrc文件中設置ctags? set tags=tags不能正常工作。

我想通過按下所選NERDTree文件夾上的熱鍵來生成標簽文件。 我試過了:

nmap <silent> <F4>
    \ :!ctags -R
    \ --languages=php .<CR>

但它會在主文件夾中創建標簽文件並顯示有關掃描主文件夾的警告。

編輯:正如@Alexandru Plugaru建議我應該使用g:NERDTreeFileNode.GetSelected()函數。

我只是新手vim用戶,所以我還有一個問題。 我在我的.vimrc文件中添加了:

function createTags()
    let curNodePath = g:NERDTreeFileNode.GetSelected().path.str
    exec ':!ctags -R --languages=php ' . curNodePath
endfunction
nmap <silent> <F4> :execute createTags()<CR>

但按F4我看到:

E117: Unknown function: createTags
E15: Invalid expression: createTags

編輯2:感謝@Alexandru Plugaru我得到了這個:

function CreateTags()
    let curNodePath = g:NERDTreeFileNode.GetSelected().path.str()
    exec ':!ctags -R --languages=php -f ' . curNodePath . '/tags ' . curNodePath
endfunction
nmap <silent> <F4> :call CreateTags()<CR>

它的工作原理! 通過按F4我得到項目文件夾中的標簽文件。

  1. 函數應該以大寫字母開頭。 createTags更改為CreateTags

  2. 要使用特定於項目的tags文件,您需要在.vimrc添加類似的內容:

     set tags=./tags,tags; 

    這樣Vim首先在當前目錄中查找一個tags文件,直到它找到它為止。 另外,我喜歡set autochdir :工作目錄始終是包含當前文件的目錄。

那是因為vim的當前目錄是主目錄。 您需要更改路徑或創建nerdtree插件。 有關示例,請參閱nerdtree_plugin目錄。 我認為你會發現這個功能很有趣:

g:NERDTreeFileNode.GetSelected()

在.vimrc中使用:

 set tags+=tags,/srv/http/dev/proj/tags

我相信逗號是合適的分隔符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM