When it comes to coding, your choice of text editor or terminal emulator can have a big impact on your productivity and workflow. So, we want to know: what's your favorite text editor or terminal emulator, and why? Is there a specific feature that you can't live without, or a particular aspect of the interface that makes your coding experience more enjoyable? Are there any lesser-known text editors or terminal emulators that you think deserve more attention? Share your thoughts and opinions with the community, and let's see if we can discover some new favorites!
Follow the CodeNewbie Org and #codenewbie for more awesome discussions and online camaraderie!
Top comments (26)
Editors in any OS: VSCode for gui, VIm in the terminal.
Terminal Emulator depends on the OS, so.
MacOS: iTerm2
Windows: Windows Terminal
Linux: gnome-terminal without any window borders/decorations and translucent background.
Editors and Terminals => white text on black background
VIM and BASH, respectively.
EDIT: I now see the question was about the terminal emulator, not SHELL (funny how the mind edits for you; I'm keeping what I wrote about BASH though:)).
I don't have a very strong opinion about the emulator to be honest. I've used
konsole
for many years and am now usinglxterminal
.VIM
- already available or easily installable on every UNIX box. Lightweight yet super extendible and powerful. Requires no X/Wayland and can therefore be used remotely with no lag penalties. In most distros, it comes preconfigured with all the basic plugins (syntax highlighting for most commonly used languages, auto completion, what have you).BASH
- for the same core reasons. There are other shells out there that provide a nice feature or another (or a few) that BASH hasn't got however, as with VIM but more so, BASH is the standard interactive shell in most distros. This is a major advantage because:Using BASH means you'll never have to waste your time porting a project's (or tutorial) code and configurations from BASH to your shell of choice. It also means you're far more likely to get answers when you're stuck on something.
And of course, needless to say - they are both FOSS and neither is owned by a commercial mammoth:)
If anyone's interested, I've recently written this article: dev.to/jessp01/take-your-bash-scri...
Cheers,
I'm a little embarrassed to have misread the question initially. I hope I caught it before too many people read my comment as shells and terminal emulators are completely different things and I wouldn't want anyone to think I, of all people, do not know the difference...
It is not my intention to hijack this post by any means but, may I ask: how many people feel that working with their terminal emulator of choice makes a big difference and why? I think my mind edited the question simply because to me, so long as the emulator supports tabs and colour scheme configuration (and most modern ones do, really), I'm happy. When working with a new one, the only thing I do sometimes need to get used to is the key sequence to open a new tab as for some reason, some emulators do not support assigning your own.
I think that the common terminal emulators, like iterm, Windows terminal, the Gnome bits and bobs, are all so similar to use that it makes no odds.
Whenever I've used anything else, I find that the missing bits overshadow the exciting new features. For example, I like using tabs to separate some sessions (mostly because nesting tmux sessions is a less-than-great idea) and alacritty doesn't support tabs, or I just don't want to use yet another electron app, or whatever.
With the core set of features:
then terminals disappear into the background of the OS and behave basically the same on whichever OS I'm using at the time.
terminal mac:iterm2 I can split many subterminal window, so each terminals fit on 1 screen. On windows: gitbash ... saddly my company laptop was window I do not like compare to macos fare worst for work. Even terminal. Editor is vscode on all system. Few plugin so slow. But easy to configure, can I use for js to rust many language. That is a swisblade. On terminal nano.
Favorite text editor: Vim
Favorite terminal emulator: Terminal.app (macOS)
I am aware of (and probably have used) all the popular editors out there, including all the other
vi
alternatives. I'm also aware of the many other terminal emulators, and probably have used a bunch of them.My other favorite editors in bygone days: Ced (CygnusEd), emacs (µemacs in particular), Brief (by Underware), and Sidekick (by Borland).
Although not asked, my favorite shell is bash. But only because I'm very familiar with it, not because I have it on a pedestal of it being the ultimate shell. If I had enough motivation to give it a serious try, I suspect I'd like PowerShell even more.
NeoVim. Highly customizable, has really good plugins like NvChad. Helix works too.
I love using visual studio code
Editor:
emacs
for almost everything, sometimesgedit
for some fast patchwork. For development, I useemacs
forRuby
andoctave/matlab
and gnatstudio (a specialized IDE) for Ada.Terminal emulator: whatever is available on the system at hand, I am not picky. Usually it is
xterm
, but just because it is there....I'm currently moving from vs code to alacritty + zsh + oh-my-zsh + neovim + nvchad.
nvim and Alacritty. I love nvim for lua config and plugin support among many other advantages, and I love Alacritty for it's support for wider color gamut than the iTerm, that's very important to me because I love the aesthetics of the programming as much as i love the substance :)
it's not easy to navigate Alacritty with nvim without multiplexer, and that's why I use Tmux to make that experience better
Currently neovim (with Lunarvim), under tmux (with tmuxinator), under zsh, on Gnome Terminal, Windows Terminal and iTerm 2.
The terminal emulator makes no odds. For my use cases, they're all the same really.
The choice of shell is to keep consistent across environments. MacOS defaults to zsh because of their anti-GPL stance, and it's marginally simpler to use that everywhere than it is to homebrew bash.
Tmux is the best thing for my workflow, and using tmuxinator to handle sessions makes it a breeze. It's far more important than my choice of shell or emulator.
Finally, the Vim situation. I used to be a solid Vim user, and I still am, but I've moved over to using neovim simply because I gave in one day and tried it. I still find the configuration trickier than the old Vimscript - every "distribution" of it does things its own way - but I'm getting there and don't entirely dislike Lua.
I used to be mostly against using packaged distributions like Lunarvim because I like tinkering with my own configuration, and don't tend to agree with all the choices made by the people who packaged them. Lunarvim gets a lot right for me though, and it's easy enough that I can override things I don't like without getting tangled up in code.
Having a smoothly-running LSP experience, essentially out-the-box, is really nice.