2012-04-23 42 views
12

我使用vim編輯器(在Ubuntu上)。最近,我一直在與大型cuda項目合作,因此希望利用ctags實用程序進行代碼瀏覽。 exuberant-ctags [here](http://ctags.sourceforge.net/languages.html)支持的語言列表不包含CUDA。如果有人知道做相同的調整,我會很感激這個幫助。.cu(CUDA)文件的ctags + taglist

謝謝

編輯1:我發現了下面的臨時修復。

要爲CUDA文件創建標記文件,請使用具有以下選項的ctags(假設您的當前目錄包含所有cuda文件);

$ CTAGS --langmap = C++:+銅*

回答

6

由於CUDA C/C++是基於C++,你可以只使用C++模式。您可以使用--langmap=c++:+.cu添加語言地圖。

+0

謝謝,我在發佈解決方案後意外地發現了一個類似的(不完全正確,因爲我用C代替C++)。 – Abhinav 2012-04-23 09:48:40

+0

CUDA C/C++基於C++,就像標準C++一樣,如果你喜歡,你可以限制自己使用C子集! – Tom 2012-04-23 09:53:57

+0

它工作美麗! 我很擔心,如果這將能夠確定內核功能(與<<<> >>)......令我驚訝的是,它的工作原理和完美的作品。 謝謝湯姆。 – Abhinav 2012-04-23 10:02:08

4

我不知道標記列表,但如果您使用的是Tagbar插件(標記列表的重做),您可以添加以下行的.vim /自動加載/ tagbar.vim:

let s:known_types.cuda = type_cpp

把它行之後:

let s:known_types.cpp = type_cpp

+0

你如何使它適用於* .cuh文件? – dalibocai 2014-10-16 04:34:28

+0

@dalibocai'''au BufNewFile,BufRead * .cuh set ft = cuda''' your vimrc – Azrael3000 2015-02-07 18:58:42

2

對於標記列表分割的窗口,您可以添加以下行

" cu language 
let s:tlist_def_cu_settings = 'c++;n:namespace;v:variable;d:macro;t:typedef;' . 
         \ 'c:class;g:enum;s:struct;u:union;f:function' 

下面

" c++ language 
let s:tlist_def_cpp_settings = 'c++;n:namespace;v:variable;d:macro;t:typedef;' . 
          \ 'c:class;g:enum;s:struct;u:union;f:function' 

在taglist.vim

0

萬向CTAGS(https://ctags.io)還內置解析器CUDA。

$ ./ctags --list-maps=CUDA 
CUDA  *.cu *.cuh 
相關問題