A Neovim plugin for switching Python virtual environments without restarting the editor.
swenv.nvim is a lightweight Neovim plugin that enables seamless switching between Python virtual environments directly within the editor. It eliminates the need to restart Neovim when changing environments, improving workflow efficiency for Python development by providing quick selection, automatic detection, and integration with language servers.
Neovim users who develop in Python and work with multiple virtual environments across different projects. It is particularly useful for developers who want to maintain a smooth, uninterrupted editing workflow without restarting their editor.
Developers choose swenv.nvim for its minimalism, speed, and deep integration with Neovim's ecosystem. Its unique selling points include automatic environment detection and creation from dependency files, fuzzy search for environment names, and seamless LSP reloading after environment changes.
Tiny plugin to quickly switch python virtual environments from within neovim without restarting.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables quick selection and activation of virtual environments using an interactive picker with fuzzy search, eliminating the need to restart Neovim, as shown in the pick_venv and set_venv API functions.
Automatically detects project-specific venvs via .venv files or with project.nvim, and can create venvs from dependency files like requirements.txt or pdm.lock, streamlining setup workflows.
Supports reloading language servers after environment changes via post_set_venv configuration, ensuring correct Python path updates, with examples for basedpyright in the README.
Provides a built-in lualine component to display the current active environment, customizable with icons and colors, enhancing workflow visibility for Python files.
Integration with coc.nvim requires a timer-based workaround due to loading order issues, making setup more complex and error-prone, as admitted in the README.
Primarily supports standard venv and pdm; lacks native support for other popular managers like Conda or Poetry, which may require additional configuration or be unsupported.
Setting up proper LSP reloading involves manual Lua configuration in post_set_venv, which can be non-trivial for users unfamiliar with Neovim's API or specific LSP clients.