Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
python-lsp-server
Fork of the python-language-server project, maintained by the Spyder IDE team and the community
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
coc.nvim
Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
If you want a quick start to building Vim based IDE for Python, I recommend python-mode. It gives you most of the things you're going to need in one plugin, there are often better implementations of some of its features in other more specialised plugins, but if you don't have time to research and learn to integrate a lot of different plugins, it's a great base to start from. Over time as you learn how you prefer to work and found specialised plugins that suits your workflow better, you can disable many of its features and replace them with more specialised plugins.
For language server client, people often use CoC (Conquer of Completion), it's very popular, but I find it is rather hard to install and frankly a bit bloated. But once you got through the complicated install process, it seems to offer many beginner friendly features. Instead, what I personally use is prabirshrestha/vim-lsp, which is a small and simple to use client.
For the language server itself, I use python-lsp-server.
Out of the box, vim is already very good at text editing, but to supercharge your editing power, you would want to add some additional text objects. Most important for Python is bps/vim-textobj-python and kana/vim-textobj-indent.
Out of the box, vim is already very good at text editing, but to supercharge your editing power, you would want to add some additional text objects. Most important for Python is bps/vim-textobj-python and kana/vim-textobj-indent.
For debugging, I highly recommend pudb, it's a pure python TUI debugger, which uses a lot of Vim bindings. Run it in a :terminal session. To integrate with vim, you can use KangOl/vim-pudb with pudb debugger, though I would recommend a branch with some bug fixes: lieryan/vim-pudb.
For debugging, I highly recommend pudb, it's a pure python TUI debugger, which uses a lot of Vim bindings. Run it in a :terminal session. To integrate with vim, you can use KangOl/vim-pudb with pudb debugger, though I would recommend a branch with some bug fixes: lieryan/vim-pudb.
For text completion, Jedi. For automated refactoring, I highly recommend rope. Some of the previously mentioned plugins provides Vim integrations with these excellent tools.
For text completion, Jedi. For automated refactoring, I highly recommend rope. Some of the previously mentioned plugins provides Vim integrations with these excellent tools.
vim-test with lieryan/vim-jumpsuite
vim-test with lieryan/vim-jumpsuite
lieryan/vim-location-awareness