emacs makefile text-editor

Emacs: Insertar pestaña en lugar de espacios



makefile text-editor (3)

Por varias razones, prefiero configurar mi editor para insertar espacios cuando se presiona TAB .

Pero recientemente descubrí que las pestañas deberían permanecer como pestañas en los archivos make.

¿Cómo inserto la pestaña ( /t , no " " ) sin reconfigurar los editores cada vez que necesito escribir archivos make?

Uso los siguientes editores: Emacs , Kate , gedit y el editor de Visual Studio .


El modo Makefile de Emacs se ocupa de dónde insertar las pestañas y los espacios siempre que se presionen las teclas correctas en los lugares correctos. O eso, o me perdí algunos detalles en la pregunta.


La sección de estilo de inferencia inteligente de sangría de la página NoTabs en EmacsWiki fue muy útil. Le muestra cómo configurar espacios para la mayoría de los proyectos, pero cambie a pestañas si el archivo que está editando tiene más líneas que comienzan con pestañas que líneas que comienzan con espacio.

Aquí está el código:

(defun infer-indentation-style () ;; if our source file uses tabs, we use tabs, if spaces spaces, and if ;; neither, we use the current indent-tabs-mode (let ((space-count (how-many "^ " (point-min) (point-max))) (tab-count (how-many "^/t" (point-min) (point-max)))) (if (> space-count tab-count) (setq indent-tabs-mode nil)) (if (> tab-count space-count) (setq indent-tabs-mode t))))

[en mi gancho de c-mode, o cualquier otro modo que quiera tener sangría inteligente]

(setq indent-tabs-mode nil) (infer-indentation-style)

Esto todavía podría ser un problema al editar archivos nuevos que siempre deberían tener pestañas como archivos make. Para aquellos, tu modo de gancho simplemente lo establecería en pestañas. Por ejemplo:

(add-hook ''makefile-mode-hook ''(lambda() (setq indent-tabs-mode t) ) )


Para insertar manualmente una pestaña en Emacs, use ctrl-Q TAB. Control-Q hace que la siguiente clave se inserte en lugar de interpretarse como un posible comando.