evil-textobj-tree-sitter 使用教程

evil-textobj-tree-sitter 使用教程

evil-textobj-tree-sitter Tree-sitter powered textobjects for evil mode in Emacs evil-textobj-tree-sitter 项目地址: https://gitcode.com/gh_mirrors/ev/evil-textobj-tree-sitter

1. 项目介绍

evil-textobj-tree-sitter 是一个为 Emacs 中的 evil-mode 提供 Tree-sitter 驱动的文本对象的插件。通过这个插件,用户可以轻松地在多种编程语言中创建诸如函数、类、注释等文本对象。此外,该插件还扩展了 thing-at-point 功能,使其支持更多的文本对象类型。

2. 项目快速启动

安装

你可以通过 use-packagepackage.el 来安装 evil-textobj-tree-sitter

(use-package evil-textobj-tree-sitter
  :ensure t)

或者使用 straight.el 来安装:

(use-package evil-textobj-tree-sitter
  :straight t)

如果你希望从源码安装,可以使用以下配置:

(use-package evil-textobj-tree-sitter
  :straight (evil-textobj-tree-sitter
             :type git
             :host github
             :repo "meain/evil-textobj-tree-sitter"
             :files (:defaults "queries" "treesit-queries")))

配置

安装完成后,你可以通过以下方式配置文本对象的键绑定。例如,将 function.outer 绑定到 f 键:

(define-key evil-outer-text-objects-map "f" (evil-textobj-tree-sitter-get-textobj "function.outer"))

3. 应用案例和最佳实践

应用案例

假设你正在编写一个 Python 函数,并希望快速选择整个函数块。你可以使用 vaf 来选择整个函数,或者使用 yaf 来复制整个函数块。

最佳实践

  1. 自定义文本对象:如果你需要特定的文本对象(例如导入语句),可以通过自定义查询来实现:

    (define-key evil-outer-text-objects-map "m"
      (evil-textobj-tree-sitter-get-textobj "import"
        '((python-mode [(import_statement) @import])
          (rust-mode [(use_declaration) @import]))))
    
  2. 使用 goto 功能:你可以使用 evil-textobj-tree-sitter-goto-textobj 函数来快速跳转到下一个或上一个函数:

    (define-key evil-normal-state-map (kbd "]f")
      (lambda () (interactive) (evil-textobj-tree-sitter-goto-textobj "function.outer")))
    

4. 典型生态项目

  • elisp-tree-sitter:一个用于 Emacs 的 Tree-sitter 绑定库,evil-textobj-tree-sitter 可以与其配合使用。
  • nvim-treesitter:Neovim 的 Tree-sitter 插件,提供了丰富的文本对象和语法高亮功能。
  • helix:一个基于 Rust 的文本编辑器,其 Tree-sitter 查询文件也被 evil-textobj-tree-sitter 使用。

通过这些生态项目,evil-textobj-tree-sitter 能够提供更加强大和灵活的文本对象功能,满足不同用户的需求。

evil-textobj-tree-sitter Tree-sitter powered textobjects for evil mode in Emacs evil-textobj-tree-sitter 项目地址: https://gitcode.com/gh_mirrors/ev/evil-textobj-tree-sitter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏庭彭Maxine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值