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的浏览器"

问题

  1. leetcode.vim依赖keyring 按照这里配置使用GnomeKeyring
[backend]
default-keyring=keyring.backends.Gnome.Keyring

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

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

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

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

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

  5. browser-cookie3库可以正常使用了。 因此可以尝试从git直接安装browser-cookie3这个库

pip install git+https://github.com/borisbabic/browser_cookie3.git

参考资料

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