組み込みのを使用するだけ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番目のタブ(2番目のタブの隣)に12個のスペースがあることを意味します。
次のようなリストも生成できます。
(setq tab-stop-list (number-sequence 2 60 2))
number-sequence
開始番号2
(最初の引数)から60
(2番目の引数)までの番号のリストを生成し、各番号は2
その隣の番号によって異なります。またnewline-and-indent
、RET にバインドすることを忘れないでください。Emacsは自動的にインデントします。
飛び回るには、次のようにCtagsを使用します。
ctags -e -R
-e
Emacsが使用するタグデータベースを生成することを意味します。
-R
プロジェクトのルートからサブディレクトリ内のファイルのタグを再帰的に生成することを意味します。
その後、Helmを使用しない場合は、Emacsでhelm-etags-select
ジャンプしたり別のetags
クライアントを使用したりできます。
編集:サンプルのセットアップは次のとおりです。
(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
は、ミニバッファーで現在強調表示されている候補の簡単な説明を取得できることです(利用可能な場合)。たとえば、次のような定義がある場合:
KeyStrokes word 0
カーソルをKeyStrokes
候補に移動するword 0
と、ミニバッファーに印刷されます。
asm-mode
すべきだと思いますか?(不足している機能は?)