Verwenden Sie einfach die eingebaute asm-mode. Sie erhalten eine Syntaxhervorhebung für alle Assemblersprachen. gas-modetut dies nicht und ist mit der AT & T-Syntax nicht verwendbar.
Wenn Sie Satz Einbuchtung wollen asm-mode, beachten Sie, dass Sie nicht verwenden können , tab-widthaber tab-stop-listdass gibt an Räume , dass Registerkarte 1, 2 Registerkarten, 3 Registerkarten ... können angezeigt werden :
(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))
Das obige Beispiel bedeutet, dass der erste Tab 4 Leerzeichen hat, der zweite Tab (neben dem ersten Tab) 8 Leerzeichen, der dritte Tab (neben dem zweiten Tab) 12 Leerzeichen ... und so weiter.
Sie können die Liste auch folgendermaßen generieren:
(setq tab-stop-list (number-sequence 2 60 2))
number-sequenceErzeugt eine Liste von Zahlen mit der Startnummer 2(das erste Argument) bis 60(das zweite Argument). Jede Zahl unterscheidet sich von 2der Zahl daneben. Und denken Sie daran, sich newline-and-indentan RET zu binden , damit Emacs automatisch Einrückungen für Sie vornimmt.
Wenn Sie herumspringen möchten, verwenden Sie Ctags wie folgt:
ctags -e -R
-ebedeutet, eine Tag-Datenbank zu generieren, die von Emacs verwendet wird.
-Rbedeutet, rekursiv Tags für Dateien in Unterverzeichnissen aus dem Projektstamm zu generieren.
Danach können Sie in Emacs herumspringen helm-etags-selectoder einen anderen etagsClient verwenden, wenn Sie Helm nicht verwenden.
BEARBEITEN : Hier ist ein Beispiel-Setup:
(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)
Sie können die Grundvervollständigung auch durch company-completeDrücken von S-TAB:
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
Sie können <tab>den Abschluss mit auslösen, da beide <tab>und M-iderselbe Befehl tab-to-tab-stop, mit dem Leerzeichen oder Tabulatoren eingefügt werden, von Ihrer Einstellung von abhängen indent-tabs-mode. Das Schöne daran company-modeist, dass Sie eine kurze Beschreibung des aktuell markierten Kandidaten im Minipuffer erhalten, falls verfügbar. Wenn Sie beispielsweise eine Definition wie diese haben:
KeyStrokes word 0
Wenn Sie den Cursor auf KeyStrokesKandidat bewegen , wird er word 0im Minipuffer gedruckt.
asm-modesollte tun, aber nicht? (Welche Funktionen fehlen?)