Hacker News new | ask | show | jobs
by JoshTriplett 3487 days ago
:term to run a terminal in a vim window.

Also, much more sensible defaults.

2 comments

An embedded terminal emulator is exactly what Neovim should not have.
Care to elaborate?
Neovim's goal is remove cruft and shrink the codebase. Adding a terminal emulator, a completely orthogonal feature that makes no sense in a text editor to begin with, is contrary to this goal. They wasted time and worked on the wrong thing.
Vim already allows you to use :shell. Neovim took it a step further with the added benefit that you can treat the output as buffer text. Just because you can't see the advantages this gives developers doesn't mean it was a waste of time.
:shell is completely different. That's vim stepping out of the way while you run a subprocess. Moreover, vim having it is not an argument for Neovim to have it. If vim really had a terminal emulator Neovim should have removed it.
Cool, but why?
Avoiding multiple levels of window management, when you want to edit multiple files and have one or more additional terminals available.

For instance, I've used this to edit a manpage with a live preview to the side in another window. Doing the same thing with screen would require running vim inside screen, and doing window management with both screen (for terminals) and vim (for everything else).

I like being able to have a vim window that has a terminal in it, there are some cases where I just prefer to have it in my terminal environment rather than switching to another real window. Mostly this is for things where I want to be in the same directory as my editor to run greps through my source, etc...

It's also nice sometimes to do something and then be able to search through the history with "/". At times I've then gone back and cut and pasted between the terminal output and a document I was working on, rather than using my window manager cut and paste.

I was, however, fairly surprised that I could no longer ":sh" out to run something. Had to get used to ":term" or ":spl term://bash".

> I was, however, fairly surprised that I could no longer ":sh" out to run something

Honestly, :sh always felt weird in vim.

Either you are in a terminal, and Ctrl-Z is a much better experience, since you maintain your existing session.

Or you are in the GUI, and the terminal emulation is poor and slow.

Speaking practically, if you're using a terminal to use Neovim, you get consistent window management. If you're using one of Neovim's GUI clients, you also get a terminal in the GUI's frame.
no more confusing C-w and C-b in tmux, perhaps?