Ⅰ. 插件描述
Solve LeetCode problems in Vim!Ⅱ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin 'ianding1/leetcode-vim'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle 'ianding1/leetcode-vim'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug 'ianding1/leetcode-vim'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/ianding1/leetcode.vim
Ⅳ. 文档说明
# leetcode.vim
Solve LeetCode problems in Vim!
This Vim plugin is inspired by skygragon/leetcode-cli.
Attention: Recently LeetCode used Google reCAPTCHA to enhance security,
prohibiting automatic login through LeetCode API.
The new login procedure needs you to login in your browser first so that
leetcode.vim can read the LeetCode session cookie from the browser's cookie
storage.
Supported browsers are: Chrome, Firefox. Safari is not supported
yet.
The one-time setup:
- Install keyring and browser-cookie3:
pip3 install keyring browser-cookie3 --user- Set
g:leetcode_browserto'chrome'or'firefox'.
Thanks @zhuopro
(see #25)
for his brilliant idea!
Installation
- Vim with
+python3feature is required. Install the pynvim package - Neovim:
pip3 install pynvim --user- Install keyring and browser-cookie3:
pip3 install keyring browser-cookie3 --user- Install the plugin:
Plug 'ianding1/leetcode.vim'Quick Start
:LeetCodeList: browse the problems.:LeetCodeTest: run the code with the default test case.:LeetCodeSubmit: submit the code.:LeetCodeSignIn: manually sign in.
Key mappings
leetcode.vim doesn't bind any key mappings by default. Put the following
lines to your .vimrc to set up the key mappings.
nnoremap <leader>ll :LeetCodeList<cr>
nnoremap <leader>lt :LeetCodeTest<cr>
nnoremap <leader>ls :LeetCodeSubmit<cr>
nnoremap <leader>li :LeetCodeSignIn<cr>Customization
g:leetcode_china
When non-zero, use LeetCode China accounts instead.
Default value is 0.
g:leetcode_solution_filetype
The preferred programming language.
Values: 'cpp', 'java', 'python', 'python3', 'csharp', 'javascript','ruby', 'swift', 'golang', 'scala', 'kotlin', 'rust'.
Default value is 'cpp'.
g:leetcode_browser
Set to the browser that stores the LeetCode session cookie.
Values: 'disabled', 'chrome', 'firefox'
Default value is 'disabled'.
Updates
- 2019/12/20: Fix the login issue caused by reCAPTCHA.
- 2019/08/01: Support custom test input
- 2019/07/28: Support showing frequencies and sorting by columns
2019/07/27:
- Support LeetCode China accounts
- Support refreshing
- 2019/07/23: Support topics and companies
FAQ
I use Ubuntu and get errors when signing in. How can I fix it?
Ubuntu users might see the error message below when signing in.
raise InitError("Failed to unlock the collection!")
keyring.errors.InitError: Failed to unlock the collection!It's caused by the misconfiguration of python-keyring. One way to fix it is to create a file ~/.local/share/python_keyring/keyringrc.cfg with the following content:
[backend]
default-keyring=keyring.backends.Gnome.KeyringWhy can't I test the problem/submit the problem/list the problems?
~~Once you sign in on your browser in LeetCode website, the LeetCode session in
Vim get expired immediatelly. Then you need to sign in again in Vim before
doing other things.~~ (No longer having this problem)
Why can't I test and submit solutions?
According to issue #5, **if the email address is not active, then you can
only login and download problems, but cannot test and submit any code.**
I got some errors like "ModuleNotFoundError: No module named 'keyring.util.escape'"
This solution worked for me:
pip3 install --upgrade keyrings.alt 