文件路径大小写敏感导致 Lua 模块重载

文件路径大小写敏感导致 Lua 模块重载

💡 原文中文,约3800字,阅读约需9分钟。
📝

内容提要

作者在使用 Windows 系统时,Lua 插件 ChineseLinter.vim 因大小写问题导致模块重复加载。分析发现,插件管理器 nvim-plug 自动将模块名转为小写,造成冲突。建议保留原始模块名并修改插件安装方式以解决此问题。

🎯

关键要点

  • 作者在使用 Windows 系统时遇到 Lua 插件 ChineseLinter.vim 的大小写问题,导致模块重复加载。
  • 插件管理器 nvim-plug 自动将模块名转为小写,造成模块名冲突。
  • 插件在载入时没有报错,但 ignored_errors 配置无法生效。
  • 通过日志发现 ChineseLinter 模块被载入两次,第一次是 nvim-plug 执行,第二次是 CheckChinese 命令执行。
  • Lua 的模块名称是大小写敏感的,导致再次寻找模块文件以载入。
  • 建议修改 nvim-plug 的模块名称生成逻辑,避免自动将模块名转为小写。
  • 最终将插件名称和模块名称都改为小写,以适应 Windows 系统的大小写敏感性。

延伸问答

为什么在 Windows 系统上使用 ChineseLinter.vim 插件会导致模块重复加载?

因为插件管理器 nvim-plug 自动将模块名转为小写,导致模块名冲突,造成重复加载。

Lua 模块名称的大小写敏感性有什么影响?

Lua 的模块名称是大小写敏感的,这意味着不同大小写的模块名会被视为不同的模块,可能导致重复加载。

如何解决 nvim-plug 导致的模块名冲突问题?

建议修改 nvim-plug 的模块名称生成逻辑,避免自动将模块名转为小写,并保留原始模块名。

在使用 ChineseLinter.vim 时,ignored_errors 配置为何无法生效?

因为模块被重复加载,导致 ignored_errors 配置没有被正确应用。

在 Windows 系统上,如何正确安装 Lua 插件以避免大小写问题?

将插件名称和模块名称都改为小写,以适应 Windows 系统的大小写敏感性。

nvim-plug 的模块名称生成逻辑是怎样的?

nvim-plug 会自动将模块名转为小写,并进行一系列字符串替换,以生成默认模块名称。

➡️

继续阅读