求助:无法将NeoVim的制表符空格数从2改为4
以下是几个排查和解决方向:
确认indent.lua的加载逻辑
检查你的init.lua中是否正确加载了indent.lua,确保require('indent')语句存在,且位置在Kickstart默认配置之后(比如和require('remap')放在同一位置)。如果remap.lua能正常加载,说明路径和加载方式没问题,但仍需确认indent的加载语句没有被注释或写错。检查文件类型插件的覆盖问题
Kickstart.nvim默认集成了多种文件类型的LSP和语法插件,部分插件会设置专属的缩进规则,覆盖全局vim.opt配置。你可以打开目标文件后,执行:set tabstop? shiftwidth? expandtab?查看当前生效的参数,如果显示为2,说明存在局部配置覆盖。
解决办法是在indent.lua中添加自动命令,强制为所有文件类型应用你的缩进规则:vim.opt.tabstop = 4 vim.opt.softtabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = true -- 强制所有文件类型使用上述配置 vim.api.nvim_create_autocmd('FileType', { pattern = '*', callback = function() vim.opt_local.tabstop = 4 vim.opt_local.softtabstop = 4 vim.opt_local.shiftwidth = 4 vim.opt_local.expandtab = true end })若只需针对特定文件类型生效,将
pattern改为{'python', 'lua', 'javascript'}这类列表即可。排查Kickstart默认配置的冲突
打开Kickstart的init.lua,搜索tabstop、shiftwidth关键词,确认默认配置中是否设置过这些参数。如果你的indent配置加载在默认配置之前,会被覆盖,需将require('indent')移到Kickstart默认配置加载语句之后。验证配置文件是否被加载
在indent.lua中添加一行测试代码:print('Indent config loaded'),重启Neovim后查看终端输出。如果没有看到这句话,说明文件未被加载,需检查配置目录是否在Neovim的runtimepath中(执行:echo &runtimepath查看,确保包含你的~/.config/nvim目录)。
内容的提问来源于stack exchange,提问作者1DS19ME123 Samsak S

