我一直用emacs进行开发,真的是神器,虽然我现在开发小程序跟APP已经用vscode进行开发了,但是emacs仍然是大爱。

目前我的Emacs的配置是基于doom来进行配置的,这里会记录我所有的配置。

安装

1
2
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install

doom自身带的module

doom自身属于那种开箱即用的,因此我们可以打开一些比较好的模块,自带的模块配置在~/.doom.d/init.el里面

(yaml)

(org +hugo +dragndrop)

我用ox-hugo来写文章,因此需要打开这个插件;dragndrop可以支持拖动图片到org文件里面

(dart)

虽然我现在主要用vscode来开发flutter APP,但是偶尔还是需要用emacs来打开dart文件

(multiple-cursors)

可以同时编辑一个文件里面的多处地方

(file-templates)

文件模板,当我们新建文件的时候可以自动插入模板内容,例如.c或者.h的文件里面的头部模板。

除了doom自带的模板内容外,我们还可以定制我们的模板内容,文件存放在~/.doom.d/snippets/目录下面,模板的目录结构是这样的major-mode/{snippet-name},例如我们要重新建一个.c文件的模板,那么我们就在snippets下面新建一个c-mode目录,然后在里面建一个__c文件,里面再协商模板内容就可以。

可以参照这里的 github 上的讨论

新建自己的module——better-defaults

定制我们自己的模块是避免不了的,自定义的module目录是在~/.doom.d下面,目录层次是这样modules/CATEGORY/MODULE/,例如我想定义一个默认配置更好的模块,因此我创建了,modules/vinurs/better-defaults目录,然后我在init.el里面引用的时候就可以这样引用

1
2
:vinurs
(better-defaults)

一个module下面一般会包含下面几个文件:

  • config.el
  • packages.el

功能

  • 启动最大化Emacs

    1
    
    (add-hook 'window-setup-hook #'toggle-frame-maximized)
    
  • 退出Emacs的时候关闭烦人的确认

    1
    
    (setq confirm-kill-emacs nil)
    
  • 自动打开之前的文件

    在~/.doom.d/config.el里面加上

    1
    
    (add-hook 'window-setup-hook #'doom/quickload-session)
    
  • 定制modeline

    doom-modeline是很详细的关于modeline定制的文档

新增package

基础配置

  • 更换主题

    默认的暗色的主题我觉得看起来太累了,就切换到亮色的主题,修改~/.doom.d/config.el里面的

    1
    
    (setq doom-theme 'doom-opera-light)
    

更新历史

2020/07/30

  • 初稿