+++ title = "Spacemacs Rocks Day 8, Spacemacs as a JavaScript/Node.js IDE" date = 2018-11-17T11:00:00+08:00 lastmod = 2018-11-19T23:07:58+08:00 tags = ["emacs", "spacemacs"] categories = ["spacemacs"] draft = false weight = 3010 +++
Autocompletion
- company-etags vs company-tern
使用的场景不同. company-tern 用于小型项目开发; company-etags 用于大型项目开发.
但是,我目前参与的项目可以说,都是一些小型项目(代码量不会超出10**4),所以大多数情况下,我们用 company-tern 就可以了.
- hippie-expand
M-x hippie-expand
或者
M-/
比如: 输入 con 后,会有补全下拉选择项目, 按 C-g 取消, 再按 M-/ 就可以进行hippie-expand补全.
Jump to definition
- SPC s l to jump to function definitions. ctags.
- SPC m g d/ etags-select
- SPC s p / SPC o s to search keywords
- SPC m g g if use tern.js
jump to function definitions. ctags> SPC s l
已经失效了
etags-select
etags, 基于正则表达式的补全
SPC m g d 和 , g d 相同
tern-mode精确补全下, 跳转定义
M-x tern-find-definitions
或者对应的快捷鍵
SPC m g g 也就是 > , g g
Syntax check
- flycheck with jshint / eslint
- js2-mode checking
开启语法检查
SPC t S
在 ubuntu 下,会发现失效了. 怎么办?
查看语法错误信息
SPC e l
在 ubuntu 下,会发现失效了. 怎么办?
REPL
- jscomint
jscomint has better ES6 support. But the keybinding are not perfect
- nodejs repl
ES6 support is not good, but has better keybinding.
nodejs repl
开启
M-x nodejs-repl
关闭 nodejs-repl
.exit
去 nodejs-repl buffer执行当前行
M-x nodejs-repl-eval-dwim
或者快捷鍵
, e d
已修改成
, s d
去 nodejs-repl buffer执行当前buffer
M-x nodejs-repl-eval-buffer
或者快捷鍵
, s b
具体其它命令,可以搜索文档
C-h o nodejs-repl-command
然后,查看 nodejs-repl-mode 文档
Format code
- js beautify
M-x web-beautify-js
或者快捷鍵
, = =
运行前,需要先安装 js-beautify
$ npm install -g js-beautify
其中js-beautify的配置文件是 `~/.jsbeautifyrc`.
如果不想安装,则使用:
SPC j =
runs the command spacemacs/indent-region-or-buffer.