3

PIC プロジェクト用の Microchip MPLAB IDE に挿入できるアセンブラ コードの作成と編集に emacs を使用したいと考えています。ファイル拡張子として .asm を使用すると、1 列目にセミコロンを使用してコメント行を開始すると、おかしな効果が得られます。次の行は常にインデントされます。どうすればこれを回避できますか? これを行うために .asm ファイルのメジャー モードとして "gas" を使用していますが、効果がありません。

おそらく本当の問題は、これらのモードがどのように機能するかについての説明を理解していないことです。

4

1 に答える 1

0

以下の関数を init.el に配置することで、asm-calculate-indentation を再定義できます。関数を「テストドライブ」するには、それをスクラッチバッファーに貼り付けて評価し、asm ファイルで編集を実行して、これが必要かどうかを確認します。

(defun asm-calculate-indentation ()
  (or
   ;; Flush labels to the left margin.
   (and (looking-at "\\(\\sw\\|\\s_\\)+:") 0)
   ;; Same thing for `;;;' comments.
   (and (looking-at "\\s<\\s<\\s<") 0)
   ;; Simple `;' comments go to the comment-column.
   (and (looking-at "\\s<\\(\\S<\\|\\'\\)") comment-column)
   ;; Do not indent after ';;;' comments.
   (and (progn
          (previous-line)
          (beginning-of-line)
          (looking-at "\\s<\\s<\\s<")) 0)
   ;;The rest goes at the first tab stop.
   (or (car tab-stop-list) tab-width))

これにより、;;; のすぐ下の行になります。自動インデントしません。あなたが気づいたかどうかはわかりませんが、定義をそのままにしておくと、コメントの下に置く次の考えがラベルである場合、 : ラベルは左に自動インデントされ、ラベルの下のすべてが自動インデントされます。ただし、コメント ディレクティブやヘッダー コメントにとってこれが煩わしい場所はわかります。

于 2013-11-15T02:11:50.037 に答える