Cukup gunakan built-in asm-mode
. Ini memberi Anda sorotan sintaks untuk bahasa assembly. gas-mode
tidak 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-width
tetapi tab-stop-list
yang 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-sequence
menghasilkan daftar nomor, dengan nomor awal 2
(argumen pertama) hingga 60
(argumen kedua), setiap nomor berbeda dengan 2
nomor di sebelahnya. Dan ingat untuk mengikat newline-and-indent
RET, 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.
-R
berarti secara rekursif membuat tag untuk file dalam sub-direktori dari root proyek.
Setelah itu, Anda dapat menggunakan helm-etags-select
untuk melompat-lompat atau etags
klien 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-complete
saat menekan S-TAB
:
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
Anda dapat menggunakan <tab>
untuk memicu penyelesaian karena keduanya <tab>
dan M-i
menjalankan perintah tab-to-tab-stop
yang sama yang menyisipkan spasi atau tab tergantung pada pengaturan Anda indent-tabs-mode
. Yang menyenangkan company-mode
adalah 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 KeyStrokes
kandidat, ia mencetak word 0
dalam minibuffer.
asm-mode
harus dilakukan, tetapi tidak? (Fitur apa yang hilang?)