您的位置:首页 > 编程语言

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

2017-09-03 14:44 796 查看
前言

准备工作

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配置中去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息