Wystarczy użyć wbudowanego asm-mode
. Umożliwia podświetlanie składni dla wszystkich języków asemblera. gas-mode
nie robi tego i nie nadaje się do użytku ze składnią AT&T.
Jeśli chcesz ustawić wcięcie asm-mode
, pamiętaj, że nie możesz używać, tab-width
ale tab-stop-list
określa spacje, które mogą wyświetlać 1 tabulator, 2 tabulatory, 3 tabulatory ...
(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))
Powyższy przykład oznacza, że karta pięści ma 4 spacje, druga karta (obok pierwszej karty) ma 8 spacji, trzecia karta (obok drugiej karty) ma 12 spacji ... i tak dalej.
Możesz również wygenerować listę w następujący sposób:
(setq tab-stop-list (number-sequence 2 60 2))
number-sequence
generuje listę liczb, zaczynając od numeru początkowego 2
(pierwszy argument) aż do 60
(drugi argument), każda liczba różni 2
się liczbą obok niej. I pamiętaj, aby połączyć się newline-and-indent
z RET, więc Emacs automatycznie dla ciebie wcina.
Jeśli chcesz skakać, użyj Ctags w następujący sposób:
ctags -e -R
-e
oznacza wygenerowanie bazy danych znaczników do użycia przez Emacsa.
-R
oznacza rekurencyjne generowanie znaczników dla plików w podkatalogach z katalogu głównego projektu.
Następnie możesz użyć helm-etags-select
do skakania lub innego etags
klienta w Emacsie, jeśli nie używasz Hełmu.
EDYCJA : Oto przykładowa konfiguracja:
(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)
Możesz także ukończyć company-complete
po naciśnięciu S-TAB
:
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
Możesz użyć <tab>
do wyzwolenia zakończenia, ponieważ oba <tab>
i M-i
uruchom to samo polecenie, tab-to-tab-stop
które wstawia spacje lub tabulatory, zależy od twojego ustawienia indent-tabs-mode
. Zaletą company-mode
jest to, że otrzymujesz krótki opis aktualnie wyróżnionego kandydata w minibuforze, jeśli jest dostępny. Na przykład, jeśli masz taką definicję:
KeyStrokes word 0
Gdy przesuniesz kursor do KeyStrokes
kandydata, zostanie on wydrukowany word 0
w minibuforze.
asm-mode
należy zrobić, ale nie zrobić? (Jakich cech brakuje?)