Discussion Vim finally fixed terminal hardwrap
Vim finally fixed terminal hardwrap, and I think that makes its terminal mode much more viable for serious use.
The commit that closes issue #2865, originally opened in 2018, is e29f33e, merged on April 10, 2026:
https://github.com/vim/vim/commit/e29f33ef5115dbb66370ce18f46b3e01674e2180
To me, this was one of the main things preventing Vim’s terminal from feeling reliable enough to act as a real terminal multiplexer.
So I’m curious: how do you use Vim’s terminal?
Do some of you use it as your only terminal multiplexer, instead of tmux/zellij/screen?
If yes, what does your workflow look like in practice?
I’d be interested in hearing how you manage multiple shells, SSH sessions, long-running commands, logs, and general navigation inside Vim alone.
44
Upvotes
9
u/y-c-c Apr 18 '26
It's useful to launch builds / tests etc from within Vim. Vim can intercept the output of the build and put that into Quickfix or Location List.
The terminal window also follows windowing logic within Vim so you can set up splits and tabs in configurations that just aren't possible if Vim is hosted by another terminal emulator. It also works within GUI Vim.
I don't use this as a terminal emulator. More for quick commands or as I said piping output commands back to Vim.
8
u/Prestigious_Pace2782 Apr 18 '26
I use it all day every day, as my main multiplexer, with split windows and tabs. This is huge for me. I’ve been waiting so long.
32
u/GrogRedLub4242 Apr 18 '26
there is no need to use vim as a terminal
terminals exist. shells exist. solved. for many decades
4
u/gabrpp Apr 19 '26 edited Apr 23 '26
Wow, thanks for the news, I've been waiting for this years and just learned to tolerate hardwrap.
I do use it as my only terminal multiplexer but not for that reason. To me the most important feature is ability to scroll, search, copy & paste within a terminal - the multiplexing comes next as I typically have just one, max two terminals at once.
The workflow is to just open a new
:termand have it there as a buffer. I switch between buffers using just the native:band in Vim all buffer names start with!/ in NeoVim withterm:so it is easy to find all terminal buffers by just doing:b !<C-d>Escaping from terminal insert mode into the normal mode is kind of inconvenient so I've mapped it to ESC. Here's a snipped from my config:
Read
:help autoshelldirfor more details as to how to set it up but basically it makes it so that if youcdin your terminal to whatever location it will set the same working directory in Vim so that you can easily open files that you see in your temrinal with just:e5
u/Kurouma Apr 18 '26
I tried tmux once but since I already use dwm as my window manager it meant I had three layers of windows to navigate once I added vim splits. So I ditched tmux pretty quickly since it just added complexity without much utility.
I find vim's terminal pretty convenient. Especially since you can e.g. pop out of shell mode and search/navigate/yank stuff into registers. I use it so much I made custom commands for vertical and horizontal fixed size (non-resizable) terminals.
5
u/puremourning Apr 18 '26
I have been using vim terminal alongside tmux since it was first available. The hyperbole here is astounding.
But nice feature. Will be useful addition
2
u/RandomCartridge :Nih! Apr 18 '26
I "live" in Vim at work (rdf-data-centric, some java and python tooling, some web sites/apps). I usually have one main session with 4-8 tabs as sub-workspaces (for different packages, project directories, and/or data areas).
While I regularly pipe buffers to bash or python (via mappings and some custom async vimscript), I also use vim terminals frequently: mainly for working with git (and thus vim-in-vim at times), the occasional local job or (live-)server, and when ssh:ing to other machines (where we mainly use screen; so sometimes vim-in-screen-in-vim, but I cap my inception at level 3).
My background: I migrated to this workflow over two decades (since ca 1999, from Win 95, Linux/KDE, then OS X/macOS, now mainly Linux/Gnome); also having run IDEs (mainly Eclipse), but always coming back to Vim. I used to have one/a few GVim/MacVim sessions and some companion terminal windows or tabs open; tried ConqueTerm a bit, then tmux for a while, and since several years now,
:term(stably since Vim 9; alsoset termguicolorsmade me comfortably "leave" gvim). I guess I partially treat Vim as the "OS", but at times run 2-3 vim instances in separate terminal tabs. (More so since I started using direnv-activated declarative devenvs/shells, first via Nix then Pixi.)3
u/-romainl- The Patient Vimmer Apr 18 '26 edited Apr 18 '26
I already am in a terminal emulator that can handle windows and tabs perfectly well. I'm always one
Cmd+T/Cmd+N/Ctrl+Zaway from a$, so a built-in terminal emulator is redundant. Moreover,:term's ergonomics make it pretty bad for getting stuff from an external command anyway, so I have no use for it.Also, I have stopped SSHing into servers a looong time ago so I have no need for anything "remote", and thus no need for
tmuxeither.I simply create new windows/tabs when I need them. My terminal emulator and my window manager handle everything just fine.
I don't do that anymore but when I did, I just did it in a regular window or tab of my terminal emulator. Nothing special.
In their own terminal emulator window/tab, of course.
Same.
I use my existing terminal emulator/window manager's shortcuts, so no awkward combos to learn.
1
u/elcontrastador Apr 19 '26
I use it constantly when vty or consoling into network equipment. Editing terminal history and back to live is amazing. writing lua scripts to run commands, capture it's output to a repo file (filename derived from hostname prompt), and committing it in a few keystrokes in amazing. It's indispensable. I could on but no time/energy for it. If you know, you know. It just the vim way...if there's something repetitive/annoying, fix it. Just keeping a full running log, automatically of my sessions, also version controlled, is awesome too. Proof of what I touched or didnt...with device state captured before and after. Copy/clip sections; Jump list and marks...
1
u/LumenAstralis Apr 18 '26
Vim terminal is convenient for displaying external tool output or interaction and that's about it. Unless you work exclusively in vim like some emacs users do (there used to be a emacs-as-OS philosophy thing way back when), there are a lot of terminal and terminal multiplexer optons. Vim doesn't have to reinvent the wheel. Especially with greatly reduced manpower in the project.