Smartparens
目录
Smartparens是一个用于处理Emacs中成对符号的次要模式。
它可以自动插入成对符号:
包裹、解包和重新包裹成对符号:
扩展和收缩成对符号:
导航成对符号:
以及更多功能!
入门
我们通常针对GNU Emacs 25及更新版本,但在24以上的版本中大部分功能应该都能正常工作。
你可以从MELPA安装smartparens。安装后,启用默认配置:
(require 'smartparens-config)
现在你可以使用M-x smartparens-mode
来使用smartparens。要在编程模式下自动启用smartparens:
;; 始终在js-mode中启动smartparens模式。
(add-hook 'js-mode-hook #'smartparens-mode)
你可能想尝试smartparens-strict-mode
。这会强制成对符号始终保持平衡,因此像kill-line
这样的命令会保持你的代码结构良好。
你也可以使用use-package
来安装和设置smartparens
。一个示例配置如下:
(use-package smartparens
:ensure smartparens ;; 安装包
:hook (prog-mode text-mode markdown-mode) ;; 将`smartparens-mode`添加到这些钩子
:config
;; 加载默认配置
(require 'smartparens-config))
使用
在Emacs中,M-x sp-cheat-sheet
将显示所有可用的命令及示例。
还有一篇展示smartparens中移动和编辑的优秀文章和wiki中的详细文档。
贡献
我们欢迎pull请求。请包含测试。Smartparens使用ert-runner进行测试。要运行所有测试,执行:
$ cask exec ert-runner
或者,你可以在Emacs中打开单个文件,然后执行M-x eval-buffer
M-x ert
。
你可以在测试 wiki页面了解更多关于我们如何测试的信息。
语言支持
Smartparens有一个适用于大多数语言的默认配置。对于特定语言的行为,smartparens为每种语言都有一个单独的smartparens-FOO.el
文件,smartparens-config.el
会自动加载这些文件。
支持Smartparens
如果你想支持这个项目,你可以:
-
贡献代码。如果你有尚未实现的想法,并且会使这个项目受益,欢迎实现它并提交pull请求。如果你不确定你的贡献是否会被接受,可以提前询问。你可以给作者发邮件或在跟踪器上创建一个issue。
-
贡献想法。即使你不会编写Emacs Lisp,你仍然可以贡献有价值的想法供其他程序员实现。只需在跟踪器上创建一个新issue并提交你的建议。
-
你可以通过PayPal或Patreon进行财务捐赠。如果你喜欢smartparens并能够捐赠一小笔金额,欢迎这样做。这些捐赠表达了你的感激之情,将用于我个人的"奖励"(书籍、游戏、音乐等)。你也可以在Steam上赠送我游戏或在Amazon上购买物品。无论是否有捐赠,smartparens都将永远免费,既免费使用也开源。
相关项目
其他处理成对符号的Emacs项目包括:
Smartparens旨在在所有编程语言中提供这些功能的超集。