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

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


前言

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

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

当然可以


准备工作

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

Astyle介绍

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

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

并且Atyle还有很多可选项,包括但不限于--style=,具体帮助选项使用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配置中去。

你可能感兴趣的:(软件)