An open API service indexing awesome lists of open source software.

https://github.com/ernest1338/termplug.nvim

Simple plugin to toggle a floating terminal window with customizable starting program
https://github.com/ernest1338/termplug.nvim

lua lua-plugin neovim neovim-lua neovim-lua-plugin neovim-plugin plugin terminal

Last synced: 5 months ago
JSON representation

Simple plugin to toggle a floating terminal window with customizable starting program

Awesome Lists containing this project

README

          

Termplug.nvim


Simple neovim plugin to toggle a floating terminal window with customizable starting program




![Screenshot 1](https://user-images.githubusercontent.com/45213563/222807806-4a4b9e21-bacb-42a3-ba69-2ed791ec765f.png)

## ⚙️ Features
- ~0ms load time
- <100 lines of Lua
- simple to setup and customize

This plugin exposes to the user only one function:
- toggle("optional: process_name") - opens (toggles) terminal window with given process (opens `bash` by default)

## 📦 Installation
- With [folke/lazy.nvim](https://github.com/folke/lazy.nvim)
```lua
{ "Ernest1338/termplug.nvim" }
```

- With [wbthomason/packer.nvim](https://github.com/wbthomason/packer.nvim)
```lua
use "Ernest1338/termplug.nvim"
```

- With [echasnovski/mini.deps](https://github.com/echasnovski/mini.deps)
```lua
add("Ernest1338/termplug.nvim")
```

## 🚀 Usage
Firstly, call the `setup` function with optional config (see configuration options below):
```lua
require("termplug").setup()
```

In your init.lua, set the mapping to toggle a terminal window:
```lua
vim.keymap.set({ "n", "t" }, "", " Term ")
```
If you want to toggle different process, eg. lazygit use:
```lua
vim.keymap.set({ "n", "t" }, "", " Term lazygit ")
```

## 🔧 Configuration

There are only two configuration options: `size` and `shell`.

`size` controlls how big will be the popup window. Takes values from `0.0` to `1.0` (defaults to 0.9).
`shell` controls which default shell to open (bash, zsh, tmux, etc.) when no arguments are passed to `:Term` (defaults to `bash`)

**Set the size value to `1` for a full screen terminal popup.**

- For [folke/lazy.nvim](https://github.com/folke/lazy.nvim)
```lua
{ "Ernest1338/termplug.nvim", config = { size = 0.5, shell = "zsh" } },
```

- For [wbthomason/packer.nvim](https://github.com/wbthomason/packer.nvim)
```lua
use {
"Ernest1338/termplug.nvim",
config = function()
require("termplug").setup{ size = 0.5, shell = "tmux" }
end
}
```

- For [echasnovski/mini.deps](https://github.com/echasnovski/mini.deps)
```lua
later(function()
add("Ernest1338/termplug.nvim")
require("termplug").setup({ size = 0.5, shell = "fish" })
end)
```

## ⚡ Requirements
- Neovim >= **v0.7.0**

## ❔ Why

Because I wanted a simple plugin to toggle a popup terminal window with a mapping and every existing terminal plugins seem over complicated.

Combined with the ability to choose which process to execute, this plugin became not only a terminal plugin
but it can also toggle a popup window with any TUI application of your choosing.

For simplicity, it supports toggling only one of each process (one bash, one lazygit, ...) at a time.