A Neovim plugin to persist and toggle multiple terminal windows with customizable layouts and commands.
Toggleterm.nvim is a Neovim plugin that manages multiple persistent terminal windows within the editor. It allows users to create, toggle, and control terminals in various layouts like floating, vertical, horizontal, and tabbed, making terminal workflows more integrated and ergonomic. It solves the problem of Neovim's built-in terminal being functional but not ergonomic for running background processes or having multiple easy-to-access terminal sessions.
Neovim users (version 0.7 or newer) who frequently use terminal sessions within their editor for tasks like running background processes, version control, system monitoring, or executing commands without leaving the editing environment.
Developers choose toggleterm.nvim because it is a lightweight, reliable wrapper around Neovim's terminal functionality that prioritizes simplicity and persistent state without unnecessary complexity. Its unique selling points include persistent terminals across sessions, multiple layout orientations, and the ability to send commands directly from Neovim buffers to specific terminals.
A neovim lua plugin to help easily manage multiple terminal windows
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Acts as a minimal wrapper around Neovim's terminal, avoiding bloat and focusing on reliability, as emphasized in its philosophy of not adding unnecessary complexity.
Supports multiple terminal orientations including float, vertical, horizontal, and tab, with configurability via size functions and float_opts for adaptive workflows.
Terminals retain state across toggles and sessions, enabled by persist_mode and hidden buffer settings, preventing data loss for long-running processes.
Allows creation of tailored terminals for tools like lazygit using the Terminal class with callbacks, making external utilities seamlessly toggleable within Neovim.
The plugin does not support having terminals with different directions open at once, restricting layout flexibility for complex multi-window setups.
Key features like winbar integration require Neovim nightly builds, making them unstable for standard installations and limiting immediate usability.
Setup involves numerous options and callbacks, with warnings against copy-pasting, which can lead to a steep initial tuning curve for optimal use.
Admits it won't evolve into a REPL plugin or add complex functionality, potentially lacking advanced job control or real-time collaboration tools.