Emacs 配置 :使用快捷键格式化代码

来源:互联网 发布:caffe安装 编辑:程序博客网 时间:2024/05/17 05:11

    • 前言
    • 准备工作
    • Astyle介绍
    • 原理
    • 代码实现
    • 代码解释
    • 声明


前言

众所周知,emacs十分自由,可以添加很多的配置。

作为程序员,想必都不会想让自己的代码缩进的乱七八糟,但是有时候敲几个tab还是挺烦人的,那么,可不可以配置Emacs,让我们可以用快捷键自动格式化代码呢?

当然可以


准备工作

  • Emacs,版本高于22.0
  • Astyle,并且已经将可执行文件所在目录加入到坏境变量中,以便Emacs调用

Astyle介绍

Emacs本身的代码缩进功能不是很理想,我们就借助第三方的Astyle来格式化代码。

Astyle是一个开源程序。可以使用astyle <file name>来格式化代码。

并且Atyle还有很多可选项,包括但不限于--style=<java,google,etc>,具体帮助选项使用astyle -h查看


原理

使用Lisp函数获取当前正在编辑的文件的名称。调用Astyle格式化代码。


代码实现

(let ((style "google")) (setq format-command (format "astyle --style=%s" style)))(global-auto-revert-mode t)(defun format-code () "Format current buffer" (interactive) (let ((file (buffer-file-name)))  (save-excursion    (shell-command-to-string (format "%s %s" format-command file))    (message "Code formatted"))))(global-set-key "\C-f" 'format-code) (provide 'init-astyle)

代码解释

format-command包括Astyle的选项。

(global-auto-revert-mode t)模式可以令Emacs在磁盘文件改变之后自动更新缓存区,不然还会询问你要不要修改,比较麻烦。

format-code是格式化函数,(interactive)选项是为了使函数可以绑定到按键上,(buffer-file-name)返回当前缓存区所编辑文件的文件名,shell-command-to-string函数可以运行shell指令。

(global-set-key)用于绑定按键。


声明

不反对引用转载,但请注明出处。代码可以拷贝到自己的emacs配置中去。

原创粉丝点击