求Neovim Tree-sitter查询匹配Python文件#%%及跳转按键映射
识别Python文件中#%%标记的Tree-sitter查询与跳转配置
Tree-sitter文本查询编写
- 核心逻辑:匹配行首为
#%%的单行注释,标记为单元格边界节点 - 查询代码(保存至
~/.config/nvim/queries/python/jupyter_cell.scm):
(comment) @cell_boundary (#match? @cell_boundary "^#%%")
- 说明:仅捕获行首的
#%%注释,避免误匹配注释内容中间出现的#%%字符串
前后跳转按键映射配置(以Neovim为例)
在init.lua中添加以下配置,自定义快捷键实现跳转:
-- 跳转到下一个#%%单元格边界 vim.keymap.set('n', '<leader>cn', function() vim.fn.search('^#%%', 'W') end, { desc = "Jump to next Jupyter cell" }) -- 跳转到上一个#%%单元格边界 vim.keymap.set('n', '<leader>cp', function() vim.fn.search('^#%%', 'bW') end, { desc = "Jump to previous Jupyter cell" })
- 自定义说明:
<leader>cn和<leader>cp为示例快捷键,可根据个人习惯修改组合键 - 搜索参数说明:
W确保仅匹配整词(避免误匹配),b指定反向搜索(用于上跳)
内容的提问来源于stack exchange,提问作者Maelstorm
相关产品推荐
相关产品推荐

