Solo usa el incorporado asm-mode
. Le ofrece resaltado de sintaxis para cualquier lenguaje ensamblador. gas-mode
no hace eso y no se puede usar con la sintaxis de AT&T.
Si desea establecer la sangría para asm-mode
, tenga en cuenta que no puede usar tab-width
pero tab-stop-list
que especifica espacios que pueden mostrar 1 pestaña, 2 pestañas, 3 pestañas ...
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60
64 68 72 76 80 84 88 92 96 100 104 108 112
116 120))
El ejemplo anterior significa que la pestaña de puño tiene 4 espacios, la segunda pestaña (al lado de la primera pestaña) tiene 8 espacios, la tercera pestaña (al lado de la segunda pestaña) tiene 12 espacios ... y así sucesivamente.
También puede generar la lista de esta manera:
(setq tab-stop-list (number-sequence 2 60 2))
number-sequence
genera una lista de números, con el número inicial 2
(el primer argumento) hasta 60
(el segundo argumento), cada número difiere según 2
el número al lado. Y recuerde vincularse newline-and-indent
a RET, por lo que Emacs sangra automáticamente por usted.
Si quieres saltar, usa Ctags como este:
ctags -e -R
-e
significa generar una base de datos de etiquetas para ser utilizada por Emacs.
-R
significa generar recursivamente etiquetas para archivos en subdirectorios desde la raíz del proyecto.
Después de eso, puede usar helm-etags-select
para saltar u otro etags
cliente en Emacs si no usa Helm.
EDITAR : Aquí hay una configuración de muestra:
(require 'asm-mode)
(add-hook 'asm-mode-hook (lambda ()
(setq indent-tabs-mode nil) ; use spaces to indent
(electric-indent-mode -1) ; indentation in asm-mode is annoying
(setq tab-stop-list (number-sequence 2 60 2))))
(define-key asm-mode-map (kbd "<ret>") 'newline-and-indent)
(define-key asm-mode-map (kbd "M-.") 'helm-etags-select)
También puede tener finalización básica con company-complete
al presionar S-TAB
:
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
Puede usar <tab>
para activar la finalización porque ambos <tab>
y M-i
ejecutar el mismo comando tab-to-tab-stop
que inserta espacios o pestañas depende de su configuración de indent-tabs-mode
. Lo bueno company-mode
es que obtienes una breve descripción del candidato actualmente resaltado en el minibúfer, si está disponible. Por ejemplo, si tiene una definición como esta:
KeyStrokes word 0
Cuando mueve el cursor al KeyStrokes
candidato, se imprime word 0
en el minibúfer.
asm-mode
debería hacer, pero no lo hace? (¿Qué características faltan?)