Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/2kabhishek/termim.nvim

Neovim Terminal, Improved πŸ¦ΎπŸ’»
https://github.com/2kabhishek/termim.nvim

neovim neovim-plugin productivity terminal utility vim

Last synced: 1 day ago
JSON representation

Neovim Terminal, Improved πŸ¦ΎπŸ’»

Awesome Lists containing this project

README

        

termim.nvim


License


People


Stars


Forks


Watches


Last Updated

Neovim Terminal, Improved πŸ¦ΎπŸ’»

termim.nvim in action


termim.nvim in action

termim.nvim improves your default neovim terminal experience, keeping it super simple.

## ✨ Features

- Auto enter insert mode when opening terminal
- Cleans up unnecessary clutter from terminal UI
- Auto closes terminal once process exits
- Terminals do not mess with your buffer list
- Handy commands to access full screen and split terminals
- Extend commands with any program of your choice

## ⚑ Setup

### βš™οΈ Requirements

- neovim

### πŸ’» Installation

Add the following to your lazy/packer config

```lua
-- Lazy
{
'2kabhishek/termim.nvim',
cmd = { 'Fterm', 'FTerm', 'Sterm', 'STerm', 'Vterm', 'VTerm' },
},

-- Packer
use '2kabhishek/termim.nvim'
```

## πŸš€ Usage

### πŸ“‘ Commands

`termim.nvim` adds the following commands:

- `Fterm`: open terminal in new tab
- `FTerm`: same as Fterm but stays open after process exits
- `Sterm`: open terminal in new horizontal split
- `STerm`: same as Sterm but stays open after process exits
- `Vterm`: open terminal in new vertical split
- `VTerm`: same as Vterm but stays open after process exits

All the commands accept optional command as arg, if command is missing, your default shell will run

- `Fterm lazygit`: will open lazygit in a new tab

### ⌨️ Mappings

`termim.nvim` adds the following mappings:

- J J β€” Return to normal mode in terminals, remap for ``

#### Recommended which-key Mappings

Other than the standard commands, you can use which-key to create your own commands.

```lua
t = {
name = 'Terminal',
['`'] = { 'Sterm', 'Horizontal Terminal' },
e = { 'Sterm iex', 'Elixir' },
g = { 'Fterm lazygit', 'Lazygit' },
n = { 'Sterm node', 'Node' },
p = { 'Sterm bpython', 'Python' },
r = { 'Sterm irb', 'Ruby' },
s = { 'Sterm', 'Horizontal Terminal' },
t = { 'Fterm', 'Terminal' },
v = { 'Vterm', 'Vertical Terminal' },
},
```

## πŸ—οΈ What's Next

You tell me!

## πŸ§‘β€πŸ’» Behind The Code

### 🌈 Inspiration

Most terminal plugins offer a lot more than I needed, whereas I needed some small enhancements of the default neovim terminal experience.

### πŸ’‘ Challenges/Learnings

- Figuring out some autogroup and buffer related APIs

### 🧰 Tooling

- [dots2k](https://github.com/2kabhishek/dots2k) β€” Dev Environment
- [mac2k](https://github.com/2kabhishek/mac2k) β€” Mac Dev Environment
- [nvim2k](https://github.com/2kabhishek/nvim2k) β€” Personalized Editor

### πŸ” More Info

- [tdo.nvim](https://github.com/2kabhishek/tdo.nvim) β€” Fast and simple note-taking in neovim
- [co-author.nvim](https://github.com/2kabhishek/co-author.nvim) β€” Search and add git co authors
- [nerdy.nvim](https://github.com/2kabhishek/nerdy.nvim) β€” Search and add nerd glyphs


⭐ hit the star button if you found this useful ⭐

Source
| Blog
| Twitter
| LinkedIn
| More Links
| Other Projects