comandos ¿Cómo configuro el tamaño de la pestaña Emacs en 4 caracteres de ancho para los archivos.py?




emacs vs vim (4)

He intentado usar lo siguiente:

(setq-default tab-width 4)
(setq-default tab-stop-list (list 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))

Pero el tamaño de las pestañas cuando se editan archivos .py sigue siendo de 8 caracteres de ancho. En otros archivos se ha reducido a 4, así que supongo que el modo principal de Python está anulando esto de alguna manera. Veo que puedo establecer python-indent en 4, pero esto provoca que se inserten espacios (lo que va en contra de nuestra guía de estilo de código).

¿Cómo hago para que las pestañas tengan 4 caracteres de ancho?

Actualizar:

También probé esto, pero no hizo nada:

(add-hook 'python-mode-hook
  (setq indent-tabs-mode t)
  (setq tab-width 4)
)

He tenido el mismo problema, pero con archivos C ++. Lo que finalmente hizo por mí fue lo siguiente en mis .emacs .

(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(c-basic-offset 4 t)
)

En realidad, por supuesto, lo configuré desde el área del modo C ++ del menú Customize Emacs , pero este fue el resultado. Vería si el modo python tiene algo similar. py-basic-offset o algo así? Navega por las configuraciones de modo de Pyton.


La forma correcta para el gancho es esta:

(add-hook 'python-mode-hook
          (lambda ()
            (setq indent-tabs-mode t)
            (setq tab-width 4)))

Necesita poner las instrucciones imperativas dentro de una función (lambda).


(add-hook 'python-mode-hook
      (lambda ()
        (setq indent-tabs-mode t)
        (setq tab-width 4)
        (setq python-indent 4)))

(setq indent-tabs-mode t)
(setq python-indent 4)






emacs