# vim_tree_sitter **Repository Path**: Jimmy_Huang/vim_tree_sitter ## Basic Information - **Project Name**: vim_tree_sitter - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-10-10 - **Last Updated**: 2021-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 默认按键 1. `vai` 或 `vii`;选择离光标最近的那个节点。 助记:visualize around identifier。 2. `vcf`;选择当前游标的父节点。 助记:visualize cursor father。 3. `vcn`;选择当前游标的下一个兄弟。 助记:visualize cursor next。 3. `vcp`;选择当前游标的上一个兄弟。 助记:visualize cursor prev。 4. `vcc`;进入游标模式。`h` 去到游标的父节点,`l` 去到游标的第一个孩子,`j` 下一个兄弟,`k` 上一个兄弟。 ## 如何启用? 前提: 确保你的电脑安装了 git 和 python3.6+ 和C语言编译器。 1. 把 `Plug 'https://gitee.com/Jimmy_Huang/vim_tree_sitter'` 放进你的vimrc,然后安装插件。 2. `pip install tree_sitter`,需要有C语言编译器的支持,Windows是msvc,linux是gcc,具体的看https://github.com/tree-sitter/py-tree-sitter 3. 目前仅支持Python和C/C++语言。在vim中随便打开一个python文件(就是filetype为‘python’的文件),然后`:TreeInstall` 就好了。 ## 自定义高亮 按照vim的语法,你可以用两种不同的方法高亮: 1. `hi my_hl_name term=bold ctermfg=Cyan guifg=#80a0ff gui=bold` 自定义个高亮,名叫`my_hl_name`,定义方式完全和vim的一样,详见`:help hi`。 2. `hi def link new_name my_hl_name` 这句话的意思是把名叫“hl_name”和“new_name”链接起来,相当于一个别名。 相应的,如果你想在一个python源码中高亮“def”这个关键字。 你可以这样做: `hi def link tree_hi_python_def my_hl_name` 其中 tree_hi_python_def 是一个固定的命名格式,my_hl_name是你之前就自定义好的,把这个def高亮成什么颜色。 格式:tree_hi_ + 解析器名字 + 节点名字 例如tree_hi_python_def,其中python就是解析器名字,def是节点名字。 把他写成一个函数: ``` fun! DefineTreeHi(parser_name, lists) for item in a:lists execute "hi def link tree_hi_" . a:parser_name. "_". item['type']. " ". item['color'] endfor endf let s:python_hi = [{'type': 'try', 'color': 'Special'}, {'type': 'if', 'color': 'Keyword'}] call DefineTreeHi('python', s:python_hi) ``` 特别地,不同的解析器有不同的节点名字,例如说c语言的解析器就没有def这个关键字。 可以使用 `:echo tree#CheckHl()` 查看对于解析器有什么可用节点。