文章

修改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 进行授权

© TheDarkStarJack. 保留部分权利。

[本站总访问量次] [本站访客数人次] [本文总阅读量次]

本站采用 Jekyll 主题 Chirpy