Emacs - 如何在 Assembly 中启用制表符缩进?

Emacs - 如何在 Assembly 中启用制表符缩进?

我一直使用 emacs 进行 C 编程,现在我想编写一些 Assmebly 代码,当我按下 Tab 键时,emacs 只会插入空格。我怎样才能强制它使用 Tab 键识别当前行?

答案1

尝试气体模式而不是内置的 asm 模式。

答案2

使用el-patch

(el-patch-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)
   (el-patch-remove
     ;; Simple `;' comments go to the comment-column.
     (and (looking-at "\\s<\\(\\S<\\|\\'\\)") comment-column))
   ;; The rest goes at the first tab stop.
   (or (indent-next-tab-stop 0))))

(defun my--indent-asm-setup ()
  "Set up indentation variables.
Indent with tabs, and make the TAB key behave like it's supposed
to."
  (setq-local indent-tabs-mode t)
  (setq-local tab-always-indent (default-value 'tab-always-indent)))

(add-hook 'asm-mode-hook #'my--indent-asm-setup)

答案3

就这样吧。大多数编辑器都有将制表符转换为空格的选项。为什么您希望编辑器将制表符转换为空格?您可以将代码(以保存的文件形式或复制到剪贴板)取出并在任何编辑器中使用,它看起来都一样。如果您强制它使用制表符,并将其粘贴到这里,或者(我们)在我们的编辑器中打开它,它很可能看起来很糟糕,因为我们可能将制表符设置为特定大小。

如果您确实必须使用制表符而不是空格,请帮我们一个忙,在您在此处发布或将其提供给其他人之前将制表符转换为空格。

相关内容