2010-08-18 11 views
16

correspondiente Soy nuevo en emacs y me preguntabaEmacs C++, abriendo el archivo de cabecera

  • si hay un acceso directo para cambiar entre encabezado/fuente y el archivo correspondiente fuente/cabecera

  • si hay una tarjeta de referencia como la tarjeta ref general de emacs

¡Gracias!

Respuesta

29

Hay ff-find-other-file.

Puede enlazar esto a su propia clave de usar algo como:

 
(global-set-key (kbd "C-x C-o") 'ff-find-other-file) 

Pero por supuesto, usted tiene que escoger una llave que no tiene ya algo útil adherido a él :)

+3

Creo que, si es posible, debería preferir hacer sus propias combinaciones de teclas del formulario '" C-c "', con la segunda tecla no emparejada con un carácter CTRL. Recuerdo cuando comencé a leer emacs que recientemente (en tiempo de emacs) había habido una reestructuración masiva de los atajos que existían específicamente para reservar este espacio de nombres para enlaces de usuario. '" C-x C - * "' es probable que sea utilizado por un modo principal o por emacs. Por ejemplo, '' C-x C-o "' es tomado por '(delete-blank-lines)' de forma predeterminada en mi instalación. – quodlibetor

+0

Debería haber leído el resto de las respuestas: la respuesta de mloskot a continuación sigue las mejores prácticas vinculantes, los usuarios de emacs generalmente deberían hacer ese tipo de cosas, a menos que realmente quieran que algo sea global. – quodlibetor

+0

¿Qué haces si tus archivos son '.cpp' y' .h'? esto parece no encontrar el archivo –

3

estoy usando el paquete de eAssist contrib CEDET, y tiene la función eAssist-switch-h-CPP que hacer esto TAKS

+0

¿Sabes si hace algo que no hace la otra opción (ver otra respuesta)? –

19

Compruebe el excelente artículo de Emacs-fu Quickly switching between header and implementation

En caso de que el blog ha ido, aquí es copia de la solución:

(add-hook 'c-mode-common-hook 
    (lambda() 
    (local-set-key (kbd "C-c o") 'ff-find-other-file))) 

Ahora, podemos cambiar rápidamente entre myfile.cc y myfile.h con C-c o. Tenga en cuenta el uso de c-mode-common-hook, por lo que funcionará tanto para C como para C++.

+2

'ff-find-other-file' me pide una ubicación donde podría ubicarse el archivo de encabezado, que es precisamente lo que quiero que la función haga por mí. Mis archivos de encabezado suelen estar en este tipo de ubicación, en relación con la fuente en la que me encuentro actualmente: '../../ inc/mydir'. Como en, el archivo fuente es 'src/mydir/file.cpp', y el encabezado es' inc/mydir/file.hpp'. ¿Esperaría que 'ff-find-other-file' funcione automágicamente en este caso también? – Gauthier

Cuestiones relacionadas