如何将一组格式规则应用于emacs中的现有源文件?
具体来说,我有一个assembly(*.s
)文件,但我希望所有类型的文件都有一个通用命令.
我想使用M-x c-set-style
与gnu
风格,但我得到一个错误:
缓冲区*.s不是CC模式缓冲区(c-set-style)
Trey Jackson.. 109
打开文件,然后通过缩进整个区域来缩进它:
M-x find-file /path/to/file RET C-x h (M-x mark-whole-buffer) C-M-\ (M-x indent-region)
现在,看起来您正在尝试将C缩进应用于不在C模式下的缓冲区.使其进入C模式
M-x c-mode
或者c++-mode
,或者你想要的任何模式.但是,由于它是汇编程序代码,您可能需要汇编程序模式(Emacs默认会为.s文件执行此操作).在这种情况下,上面的缩进命令(C-M-\
也称为M-x indent-region
)应该适合您.
注意:顶部的命令序列可以转换为单个命令,如下所示:
(defun indent-file (file)
"prompt for a file and indent it according to its major mode"
(interactive "fWhich file do you want to indent: ")
(find-file file)
;; uncomment the next line to force the buffer into a c-mode
;; (c-mode)
(indent-region (point-min) (point-max)))
而且,如果您想学习如何将主要模式与基于扩展名的文件相关联,请查看auto-mode-alist的文档.公平地说,它不一定是基于扩展的,只是与文件名匹配的正则表达式.
打开文件,然后通过缩进整个区域来缩进它:
M-x find-file /path/to/file RET C-x h (M-x mark-whole-buffer) C-M-\ (M-x indent-region)
现在,看起来您正在尝试将C缩进应用于不在C模式下的缓冲区.使其进入C模式
M-x c-mode
或者c++-mode
,或者你想要的任何模式.但是,由于它是汇编程序代码,您可能需要汇编程序模式(Emacs默认会为.s文件执行此操作).在这种情况下,上面的缩进命令(C-M-\
也称为M-x indent-region
)应该适合您.
注意:顶部的命令序列可以转换为单个命令,如下所示:
(defun indent-file (file)
"prompt for a file and indent it according to its major mode"
(interactive "fWhich file do you want to indent: ")
(find-file file)
;; uncomment the next line to force the buffer into a c-mode
;; (c-mode)
(indent-region (point-min) (point-max)))
而且,如果您想学习如何将主要模式与基于扩展名的文件相关联,请查看auto-mode-alist的文档.公平地说,它不一定是基于扩展的,只是与文件名匹配的正则表达式.
试试M-x asm-mode
.这将切换到汇编程序模式.不知道嵌入在C文件中间的汇编程序会如何.