当前位置:  开发笔记 > 开发工具 > 正文

在emacs中自动格式化源文件

如何解决《在emacs中自动格式化源文件》经验,为你挑选了2个好方法。

如何将一组格式规则应用于emacs中的现有源文件?

具体来说,我有一个assembly(*.s)文件,但我希望所有类型的文件都有一个通用命令.

我想使用M-x c-set-stylegnu风格,但我得到一个错误:

缓冲区*.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的文档.公平地说,它不一定是基于扩展的,只是与文件名匹配的正则表达式.



1> Trey Jackson..:

打开文件,然后通过缩进整个区域来缩进它:

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的文档.公平地说,它不一定是基于扩展的,只是与文件名匹配的正则表达式.


此外,`Cx h'(标记整个缓冲区)以稍微更少的步长选择所有内容,即使您使用瞬态标记模式也可以工作.
最好用emacs问题来记录键击绑定的内容.即`M- <`通常绑定到`缓冲区的开头'.使用`Ch k`进行击键帮助.

2> pgs..:

试试M-x asm-mode.这将切换到汇编程序模式.不知道嵌入在C文件中间的汇编程序会如何.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有