Cukup gunakan built-in asm-mode. Ini memberi Anda sorotan sintaks untuk bahasa assembly. gas-modetidak melakukan itu dan tidak dapat digunakan dengan sintaks AT&T.
Jika Anda ingin mengatur lekukan untuk asm-mode, perhatikan bahwa Anda tidak dapat menggunakan tab-widthtetapi tab-stop-listyang menentukan spasi yang 1 tab, 2 tab, 3 tab ... dapat menampilkan:
(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))
Contoh di atas berarti bahwa tab tinju memiliki 4 spasi, tab ke-2 (di sebelah tab pertama) memiliki 8 spasi, tab ke-3 (di sebelah tab kedua) memiliki 12 spasi ... dan seterusnya.
Anda juga dapat membuat daftar seperti ini:
(setq tab-stop-list (number-sequence 2 60 2))
number-sequencemenghasilkan daftar nomor, dengan nomor awal 2(argumen pertama) hingga 60(argumen kedua), setiap nomor berbeda dengan 2nomor di sebelahnya. Dan ingat untuk mengikat newline-and-indentRET, jadi Emacs secara otomatis indentasi untuk Anda.
Jika Anda ingin melompat-lompat, gunakan Ctag seperti ini:
ctags -e -R
-e berarti menghasilkan basis data tag untuk digunakan oleh Emacs.
-Rberarti secara rekursif membuat tag untuk file dalam sub-direktori dari root proyek.
Setelah itu, Anda dapat menggunakan helm-etags-selectuntuk melompat-lompat atau etagsklien lain di Emacs jika Anda tidak menggunakan Helm.
EDIT : Ini adalah contoh pengaturan:
(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)
Anda juga dapat memiliki penyelesaian dasar dengan company-completesaat menekan S-TAB:
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
Anda dapat menggunakan <tab>untuk memicu penyelesaian karena keduanya <tab>dan M-imenjalankan perintah tab-to-tab-stopyang sama yang menyisipkan spasi atau tab tergantung pada pengaturan Anda indent-tabs-mode. Yang menyenangkan company-modeadalah Anda mendapatkan deskripsi singkat tentang kandidat yang saat ini disorot dalam minibuffer, jika tersedia. Misalnya, jika Anda memiliki definisi seperti ini:
KeyStrokes word 0
Ketika Anda memindahkan kursor ke KeyStrokeskandidat, ia mencetak word 0dalam minibuffer.
asm-modeharus dilakukan, tetapi tidak? (Fitur apa yang hilang?)