3

我想使用 emacs 起草和编辑可以插入 Microchip MPLAB IDE for PIC 项目的汇编代码。如果我使用 .asm 作为文件扩展名,当我在第一列中使用分号开始注释行时,我会得到一个有趣的效果——下一行总是缩进。我怎样才能避免这种情况?我将“gas”作为 .asm 文件的主要模式来尝试执行此操作,但它没有效果。

也许真正的问题是我不理解这些模式如何工作的描述。

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 回答