Skip to content

Latest commit

 

History

History
89 lines (68 loc) · 2.72 KB

README.md

File metadata and controls

89 lines (68 loc) · 2.72 KB

Termplug.nvim

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



Screenshot 1

⚙️ 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

{ "Ernest1338/termplug.nvim" }
use "Ernest1338/termplug.nvim"
add("Ernest1338/termplug.nvim")

🚀 Usage

Firstly, call the setup function with optional config (see configuration options below):

require("termplug").setup()

In your init.lua, set the mapping to toggle a terminal window:

vim.keymap.set({ "n", "t" }, "<A-i>", "<cmd> Term <CR>")

If you want to toggle different process, eg. lazygit use:

vim.keymap.set({ "n", "t" }, "<C-g>", "<cmd> Term lazygit <CR>")

🔧 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.

{ "Ernest1338/termplug.nvim", config = { size = 0.5, shell = "zsh" } },
use {
    "Ernest1338/termplug.nvim",
    config = function()
        require("termplug").setup{ size = 0.5, shell = "tmux" }
    end
}
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.