修改coc.vim的npm镜像源
YouCompleteMe 在Windows 虽然编译成功了,但是打开 gvim 的时候会提示 utf8 错误,导致我无法正常使用,在 Linux 下是可以正常使用的,决定尝试一下另一位大佬编写的 coc.nvim 工具。
安装成功之后,通过 CocInstall coc-pylsp 安装插件的时候一直提示 “- ✗ coc-pylsp Bad response from https://registry.npmjs.org/coc-pylsp: 404”。检查日志发现以下错误(后来发现是这个 pylsp 的问题,安装其他组件是可以的):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2024-07-25T11:04:45.239 INFO (pid:24988) [plugin] - coc.nvim initialized with node: v20.11.0 after 189
2024-07-25T11:04:55.523 INFO (pid:24988) [attach] - receive notification: installExtensions [ 'coc-pylsp' ]
2024-07-25T11:04:57.207 ERROR (pid:24988) [model-fetch] - Fetch error for https://registry.npmjs.org/coc-pylsp: {
method: 'GET',
hostname: 'registry.npmjs.org',
port: 443,
path: '/coc-pylsp',
agent: null,
rejectUnauthorized: true,
maxRedirects: 3,
headers: {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)',
'Accept-Encoding': 'gzip, deflate'
},
timeout: 10000,
buffer: true
} Error: Bad response from https://registry.npmjs.org/coc-pylsp: 404
这个虽然很明显是 npm 镜像源的问题,检查我的 npm npm.cmd config list
源其实早就修改为国内的阿里镜像源,为什么这里还是没有使用的 npmjs 源呢,原来 coc 的镜像源需要在 “coc.nvim/build/index.js” 文件中修改才行。
将以下两处位置修改为 https://registry.npmmirror.com
之后重启 gvim 会使用新的 npm 源。 后续验证虽然使用了新的镜像源,也可以正常下载代码,不过无法通过 md5 校验。所以还是挂梯子吧。后面发现安装其他 coc 支持的时候是可以正常下载的,感觉就是部分软件包存在问题。
1
2
coc.nvim/build/index.js:65639: return res ?? new import_url3.URL("https://registry.npmjs.org");
coc.nvim/build/index.js:65850: let etagAlgorithm = url.startsWith("https://registry.npmjs.org") ? "md5" : void 0;
后面发现 wiki 中有提到怎么修改源: Using custom registry You can customize npm registry for coc.nvim by add coc.nvim:registry in the file ~/.npmrc:
1
coc.nvim:registry=https://registry.npmjs.org/
YouCompleteMe 在启动时会提示以下错误,如果那位大哥知道怎么处理,麻烦告诉我一下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## YouCompleteMe 是编译成功的,文件也是指定了 utf8 不知道为什么一直提示这个错误
"\Users\XXX\.vim\vim-init\init\init-plugins.vim" 762L, 26175B
Traceback (most recent call last):
File "", line 42, in <module>
File "C:\Users\XXX\.vim\bundles\YouCompleteMe\python\ycm\youcompleteme.py", line 111, in __init__
self._SetUpServer()
File "C:\Users\XXX\.vim\bundles\YouCompleteMe\python\ycm\youcompleteme.py", line 204, in _SetUpServer
python_interpreter = paths.PathToPythonInterpreter()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\XXX\.vim\bundles\YouCompleteMe\python\ycm\paths.py", line 49, in PathToPythonInterpreter
python_interpreter = _PathToPythonUsedDuringBuild()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\XXX\.vim\bundles\YouCompleteMe\python\ycm\paths.py", line 77, in _PathToPythonUsedDuringBuild
return utils.ReadFile( filepath ).strip()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\XXX\.vim\bundles\YouCompleteMe\third_party\ycmd\ycmd\utils.py", line 86, in ReadFile
return f.read()
^^^^^^^^
File "<frozen codecs>", line 322, in decode
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcd in position 9: invalid continuation byte
本文由作者按照
CC BY 4.0
进行授权