vim中的leetcode插件
安装
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的浏览器"
问题
leetcode.vim依赖keyring按照这里配置使用GnomeKeyring
[backend]
default-keyring=keyring.backends.Gnome.Keyring
vim中执行:LeetCodeSignIn出现错误browser_cookie3 not installed
明明已经安装过了
-
通过
python直接导入browser_cookie3发现原因ModuleNotFoundError: No module named 'keyring.backends.Gnome' -
查看
keyring的资料后,发现keyring把keyring.backends.Gnome.Keyring单独放到了keyrings.alt包中 安装keyrings.alt,有提示RuntimeError: GnomeKeyring module requiredGnomeKeyring是PyGObject里面的,PyGObject是Gtkpython接口,在archlinux中需要安装pygobject-devel和libgnome-keyring -
browser-cookie3无法正确获取chrome的cookies,只能获取到key,获得的value为空,猜想应该是browser-cookie3解密cookies时出现了问题。原因就是chrome更改了对cookie的加密方法,因此browser-cookie3无法获取cookie。 通过更改leetcode.vim使用pycookiecheat库获取cookie也可以。 -
更新browser-cookie3库也可以解决这个问题Pull -
browser-cookie3库可以正常使用了。 因此可以尝试从git直接安装browser-cookie3这个库
pip install git+https://github.com/borisbabic/browser_cookie3.git