Knowing vim is pretty essential for working on servers. My usual setup is ssh + tmux + vim. I suppose you could substitute nano for vim if it’s installed.
Do you use tmux on your main computer, especially if you’re using a WM? I can’t imagine the need for tmux with tiling window managers if you have workspaces and can partition windows how you like.
Not the GP but I also use tmux (or screen in a pinch) for almost any SSH session, if only as insurance against dropped connections. I occasionally use it for local terminals if there is a chance I might want a command to outlive the current graphical session or migrate to SSH later.
Occasionally it’s nice to be able to control the session from the command line, e.g. splitting a window from a script. I’ve also noticed that wrapping a program in tmux can avoid slowdowns when a command generates a lot of output, depending on the terminal emulator. Some emulators will try to render every update even if it means blocking the output from the program for the GUI to catch up, rather than just updating the state of the terminal in memory and rendering the latest version.
I would definitely use tmux on my servers, but I’m wondering about why I’d use it for the desktop. Your use-case of needing commands/output beyond the need of a graphical interface is interesting (would like to know a couple of examples), I should probably consider that.
I can do the splitting with a window manager though, wouldn’t need tmux for that. I agree with the program GUI part.
Examples of local commands I might run in tmux could include anything long-running which is started from the command line. A virtual machine (qemu), perhaps, or a video encode (ffmpeg). Then if I need to log out or restart my GUI session for any reason—or something goes wrong with the session manager—it won’t take the long-running process with it. While the same could be done with nohup or systemd-run, using tmux allows me to interact with the process after it’s started.
I also have systems which are accessed both locally and remotely, so sometimes (not often) I’ll start a program on a local terminal through tmux so I can later interact with it through SSH without resorting to x11vnc.
For me personally I am most productive in Neovim. But if you can’t be arsed to fiddle around with config files to get things set up it’s probably not worth the effort.
I’m in my 6th semester and use neovim so no it’s not mostly around for people who got used to it back in the day. A lot of my fellow students use it as well. It’s the only editor I use because you can use it to edit a single file as well as a whole project and everything is always how I want it to be.
Also once you get used to it I guarantee you, you will wonder how people navigate code only using mouse and the arrow keys. It is just a beauty to quickly copy a code block or change a word with 3 keystrokes.
I’ve been using VIM for 7 years or so, at this point. I’ve configured it the way I like.
The point of using it is that there is simply no other text editor which lets you edit text in such a manner. Granted, the keyword shortcuts can seem strange and obtuse in the beginning, but get used to it and you wouldn’t want to use anything else anymore. I’m using the VIM extension in VSCode right now and dearly miss my .vimrc which I configured so carefully on my Linux machine.
Having come from full fat visual studio and using fairly fast machines VS code is a breeze to use.
Though I can’t imagine it can compare to commandline stuff in that regard obviously
Is there much reason to learn vim nowadays? I was under the impression it’s mostly around for people who got used to it back in the day
Knowing vim is pretty essential for working on servers. My usual setup is ssh + tmux + vim. I suppose you could substitute nano for vim if it’s installed.
I know I couldn’t.
I have the exact same setup.
Do you use
tmux
on your main computer, especially if you’re using a WM? I can’t imagine the need fortmux
with tiling window managers if you have workspaces and can partition windows how you like.Not the GP but I also use tmux (or screen in a pinch) for almost any SSH session, if only as insurance against dropped connections. I occasionally use it for local terminals if there is a chance I might want a command to outlive the current graphical session or migrate to SSH later.
Occasionally it’s nice to be able to control the session from the command line, e.g. splitting a window from a script. I’ve also noticed that wrapping a program in tmux can avoid slowdowns when a command generates a lot of output, depending on the terminal emulator. Some emulators will try to render every update even if it means blocking the output from the program for the GUI to catch up, rather than just updating the state of the terminal in memory and rendering the latest version.
I would definitely use
tmux
on my servers, but I’m wondering about why I’d use it for the desktop. Your use-case of needing commands/output beyond the need of a graphical interface is interesting (would like to know a couple of examples), I should probably consider that.I can do the splitting with a window manager though, wouldn’t need
tmux
for that. I agree with the program GUI part.Examples of local commands I might run in
tmux
could include anything long-running which is started from the command line. A virtual machine (qemu
), perhaps, or a video encode (ffmpeg
). Then if I need to log out or restart my GUI session for any reason—or something goes wrong with the session manager—it won’t take the long-running process with it. While the same could be done withnohup
orsystemd-run
, usingtmux
allows me to interact with the process after it’s started.I also have systems which are accessed both locally and remotely, so sometimes (not often) I’ll start a program on a local terminal through
tmux
so I can later interact with it through SSH without resorting tox11vnc
.Thanks for the comment. Long-running commands make a lot of sense.
Do you happen to run your GUI session inside of a
tmux
session? If you log in and out, wouldn’t thetmux
session inside of the user-session terminate?The
tmux
server is run as asystemd
user service. Alsosystemd
is configured for persistent sessions so logging out doesn’t terminate user services.I’ve not run into a server without nano installed yet and it’s perfectly serviceable if all I need is to edit one value in a config file
If you have to ask, maybe not. But if you’re mostly “keyboard driven”, code and edit files a lot, it’s (vim or neovim) very much worth trying out.
It’s great if you get used to it and put in the time to set it the way you want it. I find IDE’s very bloated.
For me personally I am most productive in Neovim. But if you can’t be arsed to fiddle around with config files to get things set up it’s probably not worth the effort.
Use what works best for you.
I think I’ll probably end up doing it regardless because I have a weird urge to make everything as difficult and custom as possible
Got used to gnome, finally got it just how I liked it then threw it out for hyprland
I’m in my 6th semester and use neovim so no it’s not mostly around for people who got used to it back in the day. A lot of my fellow students use it as well. It’s the only editor I use because you can use it to edit a single file as well as a whole project and everything is always how I want it to be. Also once you get used to it I guarantee you, you will wonder how people navigate code only using mouse and the arrow keys. It is just a beauty to quickly copy a code block or change a word with 3 keystrokes.
As noted by others, if you do work on remote hosts, it’s priceless. That’s how I got used to it and I now find VSCode slow and unintuitive.
Vscode can actually run over ssh but you need to install the Vscode server which is not ideal for some
I’ve been using VIM for 7 years or so, at this point. I’ve configured it the way I like.
The point of using it is that there is simply no other text editor which lets you edit text in such a manner. Granted, the keyword shortcuts can seem strange and obtuse in the beginning, but get used to it and you wouldn’t want to use anything else anymore. I’m using the VIM extension in VSCode right now and dearly miss my
.vimrc
which I configured so carefully on my Linux machine.