安装

1.安装依赖

pip install keyring browser-cookie3

2.使用vundle安装并简单配置

call vundle#begin()
...
Plugin 'ianding1/leetcode.vim'
...
call vundle#end()

"leetcode"
let g:leetcode_china=1  "中国区leetcode"
let g:leetcode_solution_filetype='python3'    "默认使用python3"
let g:leetcode_browser='chrome'   "登录leetcode-cn.com的浏览器"

问题

1.leetcode.vim依赖keyring
按照这里配置使用GnomeKeyring

[backend]
default-keyring=keyring.backends.Gnome.Keyring

vim中执行:LeetCodeSignIn出现错误browser_cookie3 not installed
明明已经安装过了

2.通过python直接导入browser_cookie3
发现原因ModuleNotFoundError: No module named 'keyring.backends.Gnome'

3.查看keyring资料后,发现keyringkeyring.backends.Gnome.Keyring单独放到了keyrings.alt包中
安装keyrings.alt,有提示RuntimeError: GnomeKeyring module required
GnomeKeyringPyGObject里面的,PyGObjectGtkpython接口,在archlinux中需要安装pygobject-devellibgnome-keyring

4.browser-cookie3无法正确获取chrome的cookies,只能获取到key,获得的value为空,猜想应该是browser-cookie3解密cookies时出现了问题。
原因就是chrome更改了对cookie的加密方法,因此browser-cookie3无法获取cookie。通过更改leetcode.vim使用pycookiecheat库获取cookie

5.更新browser-cookie3库也可以解决这个问题Pull

参考资料

[1]leetcode.vim插件
[2]keyring
[3]pycookiecheat

最后修改日期: 2021-10-09