我正在为c-indent-level
寻找等效的ruby-indent-level
和asm-mode
。也就是说,我想将缩进强制为4个空格,我希望将它们替换为空格。
我看到的内容告诉我,asm-mode不存在。有人可以告诉我这是错的吗?
我也尝试了这个:Set 4 Space Indent in Emacs in Text Mode,没有av。
我试过了:
(setq tab-width 4)
(setq indent-line-function 'insert-tab)
(setq asm-indent-level 4)
但这有效:
(custom-set-variables
'(tab-stop-list (quote (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))))
但我想知道是否有办法仅为asm-mode
定义。如果我想保留其他模式的默认选项卡行为怎么办?
答案 0 :(得分:2)
asm-mode使用indentation的tab-to-tab-stop功能,这就是tab-stop-list正常工作的原因。据我所知,你无能为力。您可以考虑使用一些“更高级”的asm模式,例如 - gas-mode或asm86-mode。
答案 1 :(得分:0)
Emacs为每个(?)主要模式定义了挂钩。如果在汇编文件中执行H-m,则可以在文本末尾部分看到汇编器模式挂钩被称为“asm-mode-hook'”。因此,您可以添加代码,以便在为这样的缓冲区选择汇编程序模式时运行:
(add-hook 'asm-mode-hook (lambda()
(setq tab-width 4)
(setq indent-line-function 'insert-tab)
(setq asm-indent-level 4)))
注意,tab-width和indent-line-function已经是缓冲区局部变量,因此设置它们只会为当前缓冲区更改其值。这可能就是你想要的。如果你设置一些其他变量,你可能想让它们使用(make-variable-buffer-local VARIABLE)函数缓冲局部。