Chỉ cần sử dụng tích hợp asm-mode
. Nó cung cấp cho bạn cú pháp tô sáng cho bất kỳ ngôn ngữ lắp ráp. gas-mode
không làm điều đó và không thể sử dụng được với cú pháp AT & T.
Nếu bạn muốn đặt thụt lề cho asm-mode
, lưu ý rằng bạn không thể sử dụng tab-width
nhưng tab-stop-list
chỉ định các khoảng trắng mà 1 tab, 2 tab, 3 tab ... có thể hiển thị:
(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))
Ví dụ trên có nghĩa là tab nắm tay có 4 khoảng trắng, tab thứ 2 (bên cạnh tab thứ nhất) có 8 khoảng trắng, tab thứ 3 (bên cạnh tab thứ hai) có 12 khoảng trắng, v.v.
Bạn cũng có thể tạo danh sách như thế này:
(setq tab-stop-list (number-sequence 2 60 2))
number-sequence
tạo một danh sách các số, với số bắt đầu 2
(đối số thứ nhất) tối đa 60
(đối số thứ hai), mỗi số khác nhau bởi 2
số bên cạnh nó. Và nhớ liên kết newline-and-indent
với RET, để Emacs tự động thụt lề cho bạn.
Nếu bạn muốn nhảy xung quanh, hãy sử dụng Ctags như thế này:
ctags -e -R
-e
có nghĩa là tạo cơ sở dữ liệu thẻ được sử dụng bởi Emacs.
-R
có nghĩa là tạo đệ quy các thẻ cho các tệp trong thư mục con từ gốc dự án.
Sau đó, bạn có thể sử dụng helm-etags-select
để nhảy xung quanh hoặc một etags
khách hàng khác trong Emacs nếu bạn không sử dụng Helm.
EDIT : Đây là một thiết lập mẫu:
(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)
Bạn cũng có thể hoàn thành cơ bản company-complete
khi nhấn S-TAB
:
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
Bạn có thể sử dụng <tab>
để kích hoạt hoàn thành vì cả hai <tab>
và M-i
chạy cùng một lệnh tab-to-tab-stop
chèn khoảng trắng hoặc tab tùy thuộc vào cài đặt của bạn indent-tabs-mode
. Điều tuyệt vời company-mode
là bạn có được một mô tả ngắn gọn về ứng cử viên hiện đang nổi bật trong xe buýt nhỏ, nếu có. Ví dụ: nếu bạn có một định nghĩa như thế này:
KeyStrokes word 0
Khi bạn di chuyển con trỏ đến KeyStrokes
ứng cử viên, nó sẽ in word 0
trong bộ thu nhỏ.
asm-mode
nên làm gì, nhưng không? (Những tính năng nào còn thiếu?)