c++ - ctags en texto sublime
sublimetext2 sublimetext (2)
Comandos de Shell:
$ cd /absolute_path_of_my_cpp_framework/
(1)
$ ctags -R --languages=c++ --langmap=c++:+.inl --fields=+iaS --extra=+q --totals=yes --verbose=yes
(2)
$ ctags -a -R --languages=c++ /usr/include/c++/4.4.5/ --fields=+iaS --extra=+q --totals=yes --verbose=yes
(3)
$ subl .
(4)
Descripción:
(1) Vaya a la carpeta raíz de su proyecto para asegurarse de que el archivo de etiquetas se creará allí.
(2) Genere un nuevo archivo de etiquetas para todos los archivos C ++ en su proyecto, agregando soporte para archivos .inl, herencia, modificadores de acceso, alcance calificado por clase, etc.
(3) Agregue etiquetas para los encabezados de lib estándar de C ++ a su archivo de etiquetas generado.
(4) Abra la carpeta en texto sublime.
Referencias
- http://ctags.sourceforge.net/ctags.html
- https://www.chromium.org/developers/sublime-text
- http://www.tarosys.com/2014/07/adding-another-file-type-for-ctags.html
- Ctags exuberantes excluyen directorios
- Vim y Ctags: ignorar ciertos archivos al generar etiquetas
- https://www.topbug.net/blog/2012/03/17/generate-ctags-files-for-c-slash-c-plus-plus-source-files-and-all-of-their-included-header-files/
Acabo de descargar sublime text 2 beta 2182 en ubuntu 10.10 con Exuberant Ctags 5.8
Quiero usarlo para la codificación de c ++ y necesito un poco de finalización automática y navegación de código. (Estaba acostumbrado a eclipse con cdt)
Busqué en Google y encontré ctags una herramienta genial que puede hacerlo, y hay un complemento para el soporte de texto sublime here .
El problema es que quiero crear un archivo de etiqueta desde:
c ++ estándar lib (
std::vector
std::map etc
)Todas las clases del marco que estoy usando.
El punto 1 es (creo) el mismo que el punto 2, solo tengo que crear una lista de etiquetas de std lib en mi /usr/include/c++/4.4.5/
así que descargué el complemento y lo instalé, hice una lista de etiquetas de esta manera:
$ cd /absolute_path_of_my_cpp_framework/
$ ctags -R *
/home/me/.config/sublime-text-2/Packages/CTagss/CTags.sublime-settings
con esta línea:
"extra_tag_files" : [".gemtags", "/absolute_path_of_my_cpp_framework/tags"]
Ahora abro un archivo cpp, apunto el cursor sobre el nombre de una clase de mi marco y usé la ctrl+t ctrl+t
y no sucedió nada. Solo este mensaje en la barra de abajo:
no se puede encontrar "class_name"
¿Alguien me puede ayudar?
Personalmente no uso Sublime Text, pero asumiendo que usa archivos de etiquetas de manera similar a vim, necesita generar información adicional para completar C ++.
Usa ctags con las siguientes opciones:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
Se tomó información de este artículo , que también proporciona copias de los encabezados de biblioteca estándar que puede utilizar para generar etiquetas.