如何在NVChad配置的Neovim中隐藏过长SVG Path或合并为单行
处理NVChad中SVG Path内容过长的两种方案
一、隐藏过长的SVG Path内容
针对NVChad配置里的长SVG Path,可以通过Neovim的折叠功能实现隐藏:
- 基于TreeSitter语法折叠:如果SVG Path在Lua配置文件中,利用TreeSitter的语法折叠自动处理长字符串。在
custom/configs/autocmds.lua中添加配置:
配置完成后,用vim.api.nvim_create_autocmd("FileType", { pattern = "lua", callback = function() vim.opt_local.foldmethod = "expr" vim.opt_local.foldexpr = "nvim_treesitter#foldexpr()" end, })za快捷键即可一键展开/折叠长SVG Path内容。 - 自定义长度触发折叠:如果只想折叠超过指定长度的SVG Path行,可添加自动命令匹配处理:
vim.api.nvim_create_autocmd("BufEnter", { pattern = "*.lua", callback = function() local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false) for idx, line in ipairs(lines) do -- 匹配带SVG Path的字符串行,长度超过120则自动折叠 if string.match(line, '="[%a%d%s%-]+') and #line > 120 then vim.cmd(string.format("%d,%dfold", idx, idx)) end end end, })
二、合并为单行显示
如果SVG Path被拆分为多行字符串,可通过以下方式合并为单行:
- 手动合并:对于Lua中用
[[ ]]包裹的多行SVG Path,直接删除换行符改为单行字符串:
原多行写法:
合并后单行写法:local git_icon = [[ M12 1a11 11 0 0 0-7.78 18.89c.5.46.83 1.09.83 1.76 0 .67-.33 1.3-.83 1.76A11 11 0 1 0 12 1zm3 15h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1z ]]local git_icon = "M12 1a11 11 0 0 0-7.78 18.89c.5.46.83 1.09.83 1.76 0 .67-.33 1.3-.83 1.76A11 11 0 1 0 12 1zm3 15h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1z" - 自动格式化合并:借助Stylua工具自动处理,在
custom/configs/null-ls.lua中配置格式化来源:
之后用NVChad默认的local null_ls = require "null-ls" null_ls.setup { sources = { null_ls.builtins.formatting.stylua, }, }<leader>lf快捷键执行格式化,即可自动将符合规则的多行SVG Path合并为单行。
内容的提问来源于stack exchange,提问作者Kitten
相关产品推荐
相关产品推荐

