Neovim无法启用Lua LSP,提示Client 2退出码127求解决
解决Termux环境下Neovim lua-language-server执行文件缺失问题
问题根源
错误码127表示系统找不到指定的可执行文件,日志显示Mason安装的lua-language-server二进制文件不存在或无法运行。这是因为Termux是Android专属Linux环境,Mason默认拉取的预编译包不兼容ARM/ARM64架构,导致安装后没有生成可用的执行文件。
解决方法
1. 手动编译适配Termux的lua-language-server
- 安装编译依赖:
pkg install git ninja lua54 luajit - 拉取源码并初始化子模块:
git clone https://github.com/LuaLS/lua-language-server.git --depth 1 cd lua-language-server git submodule update --init --recursive - 编译生成可执行文件:
cd 3rd/luamake ./compile/install.sh cd ../.. ./3rd/luamake/luamake rebuild - 替换Mason中的无效文件:
找到Mason的lua-language-server安装目录:/data/data/com.termux/files/home/.local/share/nvim/mason/packages/lua-language-server/extension/server/bin/,将编译好的lua-language-server(位于项目根目录的bin/文件夹下)复制到该目录,覆盖原有文件(若存在)。
2. 验证修复效果
重启Neovim后打开.lua文件,执行:LspInfo查看服务状态,确认lua-language-server已正常启动,再通过:LspLog检查是否还有错误。
3. 优化Mason安装配置(可选)
若不想每次都手动编译,可修改Neovim配置让Mason优先适配Termux环境:
require("mason").setup({ providers = { "mason.providers.client", "mason.providers.registry-api", }, })
注:此配置仅部分LSP生效,手动编译仍是最可靠的方案。
内容的提问来源于stack exchange,提问作者Bittermann
相关产品推荐
相关产品推荐

