tmux is what keeps me using terminal Vim instead of using an emulated mode in a different editor. Sessions are really good for someone who happens to switch between a few projects. It takes literally a second to jump between fully ready to go projects (all terminals and Vim is set up where I left them, etc.).
Plus there’s all of the quality of life things like being able to toggle zoom in a tmux pane, search buffers, quickly spawn new windows and also get notified of the status of a program by having tmux update its window title when a program is done. Then there’s tmux-resurrect to persist everything across reboots.
Then there’s tmux giving you a very good and consistent terminal experience with most terminals. It means my WSL 2 instance running Ubuntu ends up being exactly the same as my native Linux laptop, even though I’m using 2 different terminal applications.
I don’t use a track pad but you can enable mouse mode with tmux with 1 line of configuration (my exact tmux config is in dotfiles linked in an earlier reply).
My question was more about “neovim in tmux” rather than neovim in its own terminal (and as much tmux as you want besides). What is the benefit of that ? Except for having nvim in a split tile, which is obviously cool, but that is where the mouse mode is limited: if you scroll nvim it will scroll tmux, and you will see the terminal “above” nvim, it does not scroll the buffer.
Thanks for all the answers and thanks to those who have posted their vimrcs—sure enough I learned some new things. I somehow never knew about undofile which could have saved me years of annoyance. Also, I’m extra interested in vimwiki now. I was aware of it but haven’t thought about it in a long time and it could be really useful now.
It’s also really interesting to hear what people like about Vim over VS Code. I’ve never actually tried VS Code though was thinking of giving it a shot as it seems to have better support for Phoenix-type stuff. For example, a huge annoyance I’ve had is working with inline templates in LiveView—the indentation just plain doesn’t work. I’ve actually have a PR draft in elixir.vim to fix this but I’m surprised to not hear more people complain about it. Are there any workarounds people are using that I’m unaware of? I do use ElixirLS but feel I need to dive a little deeper as I don’t feel I’m using it properly.
Do you have mouse-mode set in vim as well? I don’t know about nvim, but I have mouse-mode enabled for both vim and tmux and have no issues with scrolling with the mouse. Well, once in a while I do get it in a weird state where it will scroll tmux instead of vim, but it doesn’t happen often. I don’t use the mouse to scroll too often, though—usually just when I’m reading code and having a drink or eating at the same time.
I am using Onivim2 which can use Vscode plugins so works nice with Elixir.
Onivim is a beta software but is written in a type safe language ReasonML and in my experience is very stable.
It is also very pretty. https://onivim.io/
It’s not always, only when I know I’ll be doing nothing but HTML and for an “extended period of time” (which it isn’t that often tbh).
Main reason is that I never bothered to setup Vim properly to work with HTML and vanilla vscode has decent UX for editing html files.
I still use Vim like navigation though, because otherwise I mess things up.
I’m quite happy with this setup so far, but I would like to replace coc.nvim with something simpler. I’m waiting for the built-in NeoVim LSP to stabilize before giving it a shot. I’m also eyeing LanguageClient-neovim as another option.
I have not found myself needing an integrated debugger, but I’ve heard good things about vimspector, although it lacks official Elixir support.
Somewhat related: I recently discovered stow for managing symlinks for my dotfiles.
EDIT: I should get around to writing a blog post about this
Vim user. Once I made the switch to a tiling WM I started using terminal based applications much more. My vimrc needs some work to clean it up. I’m still using Pathogen for plugins and have been meaning to change for a while. Maybe this thread will motivate me to finally get this in order and post it.
I’ve been using Sublime ever since I changed laptops a while ago and lost all the Vim config stuff and various terminal settings that I had. I use Sublime in Vim mode, though, and I was just thinking yesterday about maybe going back fully to Vim because Vim mode in Vim is better than it is in Sublime.
Neovim/alacritty/i3 user. I’m the same as @stevensonmt - my vimrc is a mess built up over the last decade, and it’s been on my todos to fix it up.
I use CoC, and whilst it is slow it is still way quicker than VS code. I program in quite a lot of different languages, and I’ve found CoC is pretty good at supporting that.
VSCode user with vscodevim emulation. Seems to be the best set of compromises. The bindings aren’t perfect though! Any improvements on that front are very welcome. Thanks!