Estoy de acuerdo con Tyler; aunque es un poco complicado, sería mejor a largo plazo si intenta comprender y personalizar las funciones de sangría predeterminadas. El Wiki de Emacs tiene good resources, y hay otros relevant Q&As aquí en Desbordamiento de pila.
Al vincular la tecla de tabulación a insert-tab
, significa que pierde completamente el beneficio de los gustos de indent-region
y cualquier otro comportamiento inteligente que un modo principal pueda ofrecer.
para responder a sus preguntas específicas sin tener en cuenta, sin embargo:
1) Si está definiendo (java-insert-tab)
y (css-insert-tab)
y (javascript-insert-tab)
etc, y todos ellos hacen exactamente lo mismo ... bueno, espero que usted puede ver que Don de hecho, necesita más de una de esas funciones. Solo déle un nombre más genérico y vuelva a usarlo.
2) (local-set-key ...)
hace lo mismo que (define-key (current-local-map) ...)
, lo que significa que también puede tener una sola función genérica para anular la vinculación de teclas de pestañas, independientemente del modo principal.
(defun my-coding-config()
(setq tab-width 4)
(setq indent-tabs-mode t)
(local-set-key (kbd "<tab>") 'my-insert-tab))
(defun my-insert-tab (&optional arg)
(interactive "P")
(insert-tab arg))
continuación, sólo tiene que añadir my-coding-config
a cada variable modo de gancho aplicable. Si hay una gran cantidad de ellos, es posible que lo envuelve en una lista como esta:
;; Use my coding hook for all programming modes
(mapcar
(lambda (language-mode-hook)
(add-hook language-mode-hook 'my-coding-config))
'(java-mode-hook
javascript-mode-hook
css-mode-hook
...))
3) Si nos fijamos en Ch vtab-width
RET y lo mismo para indent-tabs-mode
, se dará cuenta de que ambos dicen "Automáticamente se convierte en buffer-local cuando se establece de cualquier manera".
Como alternativa a la interfaz personalizada ya mencionada, puede usar (set-default 'indent-tabs-mode t)
para establecer el valor predeterminado para dichas variables. En ausencia de un código que establezca un valor local de búfer, todos sus búferes usarán el predeterminado, lo que puede ayudarlo a evitar escribir ganchos de modo innecesarios.
Gracias por la respuesta, lo probaré y veré cómo funciona, aunque podría ser un poco más complicado para mí. – YTKColumba