programas para ejemplos configurar completo comandos basico c++ emacs ide

ejemplos - Emacs como un IDE para grandes proyectos de C++



manual completo de c++ pdf (5)

Soy un novato de Emacs. Tengo que intentar buscar cómo usar Emacs para usar con grandes proyectos de C ++, en particular para indexar códigos y autocompletar nombres de funciones y comportarme como Eclipse. Había estado usando Vim durante algún tiempo, donde usé ctags para indexar el código en mi proyecto y Vim solía intentar completar mi código automáticamente usando un menú desplegable de opciones. Estoy tratando de lograr lo mismo con Emacs ahora. Pero, durante mi búsqueda, los resultados apuntaron a CEDET y complementos de auto-completado y de terceros.

Intenté usar ctags con ctags -e -R . y etags, pero sin éxito.

¿Me estoy perdiendo una forma predeterminada de Emacs para lograr el mismo comportamiento? ¿Cuál es la manera mejor y más fácil de lograr lo que quiero?



Depende de lo que estés buscando en un IDE. He estado usando Emacs para un proyecto de C ++ bastante grande. Por supuesto, necesita configurar emacs para que funcione como usted quiere que funcione en mayor medida que cualquier otro IDE.

Pero sí, CEDET es un comienzo, aunque no sea perfecto.

Sin embargo, hay un muy buen modo de autocompletado para Emacs http://cx4a.org/software/auto-complete/ no es intelisense pero debería integrarse con CEDET de alguna manera para darle un auto completamente bueno.

Otra característica importante que uso a menudo es la función ff-find-other-file para saltar fácilmente desde los archivos de encabezado y de implementación.

Entonces, por supuesto, necesitas rodar tu propio bulid. CEDET tiene algo de apoyo para proyectos, pero no lo he probado. Sin embargo, Emacs se integra bien con herramientas de compilación de línea de comandos como make. Los errores se imprimen en un búfer y puede saltar a la línea correcta fácilmente dentro de Emacs.

GDB también se integra bien con Emacs Mx gdb , luego simplemente recuerde el comando gdb-many-windows .


Recomiendo ver Atila Neves Lightning en CppCon 2015 titulado Emacs como un IDE de C ++ .

Para más detalles, vea mi respuesta a esta pregunta relacionada .


Yo uso CEDET con autocompletar con éxito. Básicamente, autocompletar es el proveedor del cuadro desplegable, y toma sus fuentes de varias cosas, lo que es más interesante de CEDET (pero también de etags y Gnu Global, que también recomiendo).

Un buen punto de partida para CEDET es http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html

La configuración de emacs de Alex Ott está ahí: https://github.com/alexott/emacs-configs - es un recurso útil.

Tenga en cuenta que necesitará tomar CEDET de bzr e instalar / configurar autocompletar correctamente. Recomiendo encarecidamente el-get para instalar el autocompletado (y algunas otras cosas también). Deberá configurar proyectos genéricos para EDE para que el autocompletar funcione para archivos C / C ++ aleatorios que no formen parte de un proyecto EDE estructurado.

Tendrá que dedicar algo de tiempo a configurar emacs, pero vale la pena. La herramienta es sorprendentemente productiva una vez configurada correctamente.


Indexación

Es posible que desee utilizar GNU/global lugar de ctags: es compatible con C ++ y, en mi opinión, es más eficiente con proyectos grandes (especialmente porque puede actualizar el índice en lugar de reconstruirlo desde cero). Y aún es mucho más fácil de usar ese CEDET / Semántico (que también es una herramienta fantástica si dedicas tiempo a configurarlo).

Ejemplo de uso:

$ cd sources $ gtags -v # create the index $ cd subdirectory $ [hack hack hack] $ global -u # update the index (can be called from anywhere in the project)

En Emacs, active gtags-mode en los buffers del código fuente para obtener acceso a los comandos gtags:

  • gtags-find-tag ( M-. ): encuentre la definición de la etiqueta especificada en sus archivos de origen ( gtags permite elegir entre todas las definiciones posibles si hay varias, o salte directamente si solo hay una posibilidad)
  • gtags-pop-stack ( M- * ): volver a la ubicación anterior
  • gtags-find-rtag : encuentra todos los usos de la etiqueta especificada en los archivos de origen

A continuación se muestra mi configuración para gtags , que activa automáticamente gtags-mode si se encuentra un índice:

;; gtags-mode (eval-after-load "gtags" ''(progn (define-key gtags-mode-map (kbd "M-,") ''gtags-find-rtag))) (defun ff/turn-on-gtags () "Turn `gtags-mode'' on if a global tags file has been generated. This function asynchronously runs ''global -u'' to update global tags. When the command successfully returns, `gtags-mode'' is turned on." (interactive) (let ((process (start-process "global -u" "*global output*" "global" "-u")) (buffer (current-buffer))) (set-process-sentinel process `(lambda (process event) (when (and (eq (process-status process) ''exit) (eq (process-exit-status process) 0)) (with-current-buffer ,buffer (message "Activating gtags-mode") (gtags-mode 1))))))) (add-hook ''c-mode-common-hook ''ff/turn-on-gtags)

Finalización automática

No conozco ninguna herramienta mejor que la auto-complete . Incluso si no está incluido en Emacs, es muy fácil de instalar utilizando el sistema de empaque (por ejemplo, en los depósitos de marmalade o melpa ).