使用Emacs配置web开发环境

2,448 阅读4分钟

使用Emacs配置web开发环境

初衷

Emacs的教程比较多,如果你熟练使用google,基本一搜一大堆。这里我不介绍emcas基本的使用方法,而是说说如果使用emacs做web开发。

事实上,很少人会使用emacs做web开发,尤其是国内,emacs更多的是用在linux开发上面,如果你是纯做web开发的,建议还是直接使用vscode等开箱即用的工具。

但如果你喜欢在一个终端应付不同的工作环境,emcas却是一个不错的选择。在emacs圈子里,大多数人不只用emacs做开发工作,他被称为"神之编辑器",相比于vim"编辑器之神",他似乎更加厉害一些。

网上说emacs是一个伪装成编辑器的"操作系统",原因是它的功能已经远远超越了编辑器的范畴,他可以写文档,记笔记,看图片,看视频,发邮件,各种语言编程,登录电报聊天等等。。

几乎所有东西都可以做,对于喜欢将多端东西集成于一点的玩家来说简直是不二选择。并且,学习emacs可以让自己更加熟悉操作系统,终端,命令等。

而对于我来说,emcas可以提升我的开发效率,丰富的快键键,简单的项目管理,高效的模糊搜索功能,简直让开发体验飞上了天。

我是一名web前端开发人员,机缘巧合碰到同事在用emacs,这里就按照web的要求,配置了一套emacs的前端开发配置。

如果emcas你还没有接触过,你可以先看一些emacs基础的教程,他的学习成本是相对高一点,但是物超所值,当真正上手之后,开发效率会上升一个层次。

一些emacs的学习地址:

官网

emacs-china

Mike Zamansky Using Emacs

还有b站的一些视频学习资料,大家可以自己去搜一搜,刚刚接触emcas我建议还是多看一些视频资料,看看基础的用法(C-h t 是一定要看的)。

Web 配置(基础配置可以参考我的配置 github.com/petsgre/ema…)

下面我会为大家介绍web相关的配置

melpa.org 是Emacs的一个资源托管平台,类似于 atmnpm 这类东西,所有要在配置文件开头加入下载源

;; 添加melpa资源
(add-to-list 'package-archives
	     '("melpa" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/") t)

use-package 是一个编写配置的简便方法,通过它编写配置,如果还没下载,他会自动下载

;; example
(use-package foo
  :init
  (setq foo-variable t)
  :config
  (foo-mode 1))

Web开发所需mode

mode作用链接
flycheckeslint检查www.flycheck.org/en/latest/
emmet-modehtml补全github.com/smihica/emm…
prettier-js代码格式化github.com/prettier/pr…
lsp-mode各种语言的服务协议github.com/emacs-lsp/l…
web-mode高亮html,css,js等github.com/fxbois/web-…
tide-mode可以协助跳转,高亮等github.com/ananthakuma…

通过以上配置,就可以配置出基本的web开发环境了。

但是为了更好的开发体验,我们还需要一些比较强有力的辅助mode

实用mode

插件众多,这里只做列举,不详述。可能有些功能在其他编辑器里面已经是开箱即用的功能,有些则是emacs比较特有的。

mode作用
multiple-cursors多点编辑
which-key快捷键提示
swiperminibuffer的强力拓展
auto-complete可以提示当前buffer或者最近输入的一些内容
undo-tree返回神器,可以记录当前buffer所有的undo redo
projectile便捷的项目管理,里面有很多好玩的内容(counsel-projectile-rg等等)
magit使用emacs的另一个借口
dumb-jump跳转到定义,适用于大部分语言
vterm在emacs中打开终端
fzf模糊搜索神器,强烈推荐
yasnippet自定义代码块

第一次配置肯定会碰到形形色色的问题,碰到问题不要气馁,多尝试,多google,总会有结果的。

也有一部分大神搞出来一些接近开箱即用的配置(doom emacs,spacemacs等),但我觉得游戏还是自己玩比较有意思。

最后,如果有问题也可以来TG群问(需要科学上网, Emacs 中文),这也许是最快的一种途径,里面有很多大手子(大佬)会为你解答,不知道为什么他们称大佬为大手子。