Estoy empezando a usar el objetivo C, y el modo objetivo C funciona perfectamente bien. Sin embargo, ObjC usa archivos .h, como C y C++. Necesito poder usar los tres. ¿Alguien sabe cómo hacer que emacs diga si debería estar en el modo objC o en el modo C/C++?Pregunta del modo Emacs
EDIT: Parece que hay algo de confusión en lo que estoy pidiendo. El problema es que tengo algunos archivos .h que están asociados con archivos .m y algunos archivos .h que están asociados con archivos .c y algunos que están asociados con archivos .cpp. Lo que QUIERO es algo que puedo guardar en mi c-mode-common-hook o en algún lugar que verificará si se trata de un archivo C .h objetivo, y luego lo forzará al modo C objetivo, o algo así. La idea es que puedo abrir un archivo .h y automáticamente estará en el modo correcto.
Obviamente puedo cambiar de modo manualmente cuando estoy en el archivo, pero eso es un problema, y a menudo me olvido hasta que toco la pestaña y sucede algo raro. Esta es la solución que estoy usando ahora.
Creo que el comentario del encabezado es probablemente la forma correcta de hacerlo, pero para que sea VERDADERAMENTE útil, necesito averiguar cómo hacer que XCode ponga el comentario allí cuando está creando el archivo para me ...
Edit2:
Actualmente estoy usando la solución cabecera de comentario. Hasta que pueda encontrar la manera de hacer XCode añadir automáticamente el comentario, estoy usando la siguiente función elisp:
(defun bp-add-objC-comment()
"Adds the /* -*- mode: objc -*- */ line at the top of the file"
(interactive)
(objc-mode)
(let((p (point)))
(goto-char 0)
(insert "/* -*- mode: objc -*- */\n")
(goto-char (+ p (length "/* -*- mode: objc -*- */\n")))))
No entiendo su objeción? los archivos objetivo .h son diferentes a los archivos C++ .h. Quiero usar el modo correcto. –
Puede usar un marcador en lugar de calcular la posición de retorno usted mismo: (let ((m (marcador de punto))) (goto-char 0) (inserte "...") (goto-char (marcador-posición m))) – Svante