asm-mode
เพียงแค่ใช้ในตัว มันช่วยให้คุณเน้นไวยากรณ์สำหรับภาษาประกอบใด ๆ gas-mode
ไม่ทำอย่างนั้นและไม่สามารถใช้ได้กับไวยากรณ์ AT&T
หากคุณต้องการตั้งค่าการเยื้องสำหรับasm-mode
โปรดทราบว่าคุณไม่สามารถใช้tab-width
แต่tab-stop-list
ที่ระบุช่องว่างที่ 1 แท็บ 2 แท็บ 3 แท็บ ... สามารถแสดง:
(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))
ตัวอย่างข้างต้นหมายความว่าแท็บกำปั้นมี 4 ช่องว่างแท็บที่ 2 (ถัดจากแท็บแรก) มี 8 ช่องว่างแท็บที่ 3 (ถัดจากแท็บที่สอง) มี 12 ช่องว่าง ... และอื่น ๆ
คุณสามารถสร้างรายการเช่นนี้:
(setq tab-stop-list (number-sequence 2 60 2))
number-sequence
สร้างรายการของตัวเลขโดยมีหมายเลขเริ่มต้น2
(อาร์กิวเมนต์แรก) 60
จนถึง (อาร์กิวเมนต์ที่สอง) แต่ละหมายเลขจะแตกต่างกันตาม2
จำนวนที่อยู่ถัดจากมัน และอย่าลืมผูกnewline-and-indent
RET ดังนั้น Emacs จะเยื้องคุณโดยอัตโนมัติ
หากคุณต้องการกระโดดไปรอบ ๆ ให้ใช้ Ctags ดังนี้:
ctags -e -R
-e
หมายถึงสร้างฐานข้อมูลแท็กที่จะใช้โดย Emacs
-R
หมายถึงการสร้างแท็กซ้ำสำหรับไฟล์ในไดเรกทอรีย่อยจากโครงการราก
หลังจากนั้นคุณสามารถใช้helm-etags-select
เพื่อกระโดดไปรอบ ๆ หรือetags
ไคลเอนต์อื่นใน Emacs หากคุณไม่ใช้ Helm
แก้ไข : นี่คือการตั้งค่าตัวอย่าง:
(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)
นอกจากนี้คุณยังสามารถมีพื้นฐานที่สมบูรณ์company-complete
เมื่อกดS-TAB
:
(define-key asm-mode-map (kbd "<backtab>") 'company-complete)
คุณสามารถใช้<tab>
เพื่อทริกเกอร์ทำให้เสร็จได้เพราะทั้งคู่<tab>
และM-i
รันคำสั่งเดียวกับtab-to-tab-stop
ที่แทรกช่องว่างหรือแท็บขึ้นอยู่กับการตั้งค่าของindent-tabs-mode
คุณ สิ่งที่ดีcompany-mode
คือคุณจะได้รับคำอธิบายสั้น ๆ เกี่ยวกับผู้สมัครที่ไฮไลต์อยู่ใน minibuffer ถ้ามี ตัวอย่างเช่นหากคุณมีคำจำกัดความเช่นนี้:
KeyStrokes word 0
เมื่อคุณเลื่อนเคอร์เซอร์ไปที่ตัวเลือกKeyStrokes
มันจะพิมพ์word 0
ใน minibuffer
asm-mode
ควรทำอะไร แต่ไม่ทำ (คุณลักษณะใดหายไป)