Garrit Franke
3 years ago
1 changed files with 57 additions and 0 deletions
@ -0,0 +1,57 @@ |
|||||||
|
--- |
||||||
|
title: Strategies to use a terminal alongside (Neo)Vim |
||||||
|
date: "2021-02-23" |
||||||
|
--- |
||||||
|
|
||||||
|
One thing that bothered me about vim for a long time, was the lack of a terminal |
||||||
|
directly in your editor. If I'm not using Vim, I'm most definetely using VSCode |
||||||
|
and its built-in Terminal. After searching the webs for possible solutions, I |
||||||
|
came across a couple of strategies to achive this. |
||||||
|
|
||||||
|
## Executing single commands |
||||||
|
|
||||||
|
If you just want to issue a single command without spawning an entire shell, |
||||||
|
you can just use the `:!` command: |
||||||
|
|
||||||
|
``` |
||||||
|
:! printf "Hello Sailor" |
||||||
|
``` |
||||||
|
|
||||||
|
## Vims builtin terminal |
||||||
|
|
||||||
|
I couldn't believe my eyes when I read this, but Vim ships with a builtin |
||||||
|
terminal! Executing `:term` will spawn it in your current buffer. How you |
||||||
|
integrate it in your workflow is up to you. You could use tabs or open a |
||||||
|
horizontal buffer and spawn it there. I must say that it is rather clunky to |
||||||
|
use, since its literally a Vim buffer that forwards stdin and stdout to the |
||||||
|
buffer, but it's there for you to use. |
||||||
|
|
||||||
|
## Vim x Tmux |
||||||
|
|
||||||
|
Another great alternative is to set up Tmux with two windows, one for Vim and |
||||||
|
one for your terminal, and switch between them. This works great on a minimal |
||||||
|
system, but on MacOS for example, it is easier to simply use cmd+1 and cmd+2 to |
||||||
|
switch between two tabs of the Terminal application. |
||||||
|
|
||||||
|
## Pausing and resuming Vim |
||||||
|
|
||||||
|
This one is my personal favorite. The idea comes from |
||||||
|
[this](https://stackoverflow.com/a/1258318/9046809) stackoverflow answer. |
||||||
|
|
||||||
|
The plan is to pause the Vim process and resume it later. To pause Vim, you |
||||||
|
press `<ctrl>-z`. This sends the process in the background. Then, to resume the |
||||||
|
process, simply issue the `fg` command and Vims process resumes in the |
||||||
|
foreground. |
||||||
|
|
||||||
|
## Conclusion |
||||||
|
|
||||||
|
I'm sure there are many more strategies that could be added to this list. I'd be |
||||||
|
interested to hear how your setup works! If you liked these techniques, you |
||||||
|
might be interested in |
||||||
|
[@lopeztel](https://fosstodon.org/web/accounts/211905)s |
||||||
|
[cheat sheet](https://lopeztel.xyz/2021/02/21/my-neovim-cheatsheet/) for Vim. |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This is post 014 of [#100DaysToOffload](https://100daystooffload.com/). |
Loading…
Reference in new issue