文章目录
- 如何在`emacs`上开始使用`Tree-Sitter`(`windows`)
如何在emacs上开始使用Tree-Sitter(windows)
参考:“How to Get Started with Tree-Sitter”。
首先要有一个可运行的emacs,并且它支持Tree-Sitter,直接从官网下载的就可以:“emacs-29.2_1-installer.exe”。
可以通过查看system-configuration-options获得编译选项,如果是--with-tree-sitter,说明它支持Tree-Sitter:

然后安装各个语言对应的语言文件,github上已经有人提供下载了:“emacs-tree-sitter/tree-sitter-langs”。我下载的是tree-sitter-grammars.x86_64-pc-windows-msvc.v0.12.92.tar.gz这个文件:

然后把这些文件都放到user-emacs-directory下的tree-sitter目录中,在我的电脑上即%APPDATA%/.emacs.default/tree-sitter。且由于文件名要保持libtree-sitter-<LANGUAGE>.dll的格式,所以用emacs的dired可以批量修改文件名,操作时步骤:
C-x C-q将dired变成可写buffer。C-x r t执行string-rectangle来批量修改。C-c C-c最终使用文件名生效。

这里可以用(treesit-language-available-p 'cpp)命令来测试一下是否环境配置成功,返回t,说明成功。
最后在启动配置文件中添加如下即可:
(setq major-mode-remap-alist'((sh-mode . bash-ts-mode)(c-mode . c-ts-mode)(c++-mode . c++-ts-mode)(c-or-c++-mode . c-or-c++-ts-mode)(python-mode . python-ts-mode)))
这里的含义就是当主模式为c-mode时,改用c-ts-mode模式。(可以M-:执行major-mode来查看当前主模式)