我一直使用 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
就这样吧。大多数编辑器都有将制表符转换为空格的选项。为什么您希望编辑器将制表符转换为空格?您可以将代码(以保存的文件形式或复制到剪贴板)取出并在任何编辑器中使用,它看起来都一样。如果您强制它使用制表符,并将其粘贴到这里,或者(我们)在我们的编辑器中打开它,它很可能看起来很糟糕,因为我们可能将制表符设置为特定大小。
如果您确实必须使用制表符而不是空格,请帮我们一个忙,在您在此处发布或将其提供给其他人之前将制表符转换为空格。