emacs

danhab99@programming.dev to Programmer Humor@programming.dev – 561 points –
81

VSCodium > VSCode

It is, but the lack of official Microsoft extensions makes life a little harder

You can change the extension repository to the official one.

I don't need it tho, I only need Pyright, Python and the catppuccin theme

Some MS addons still don't work if you do that, last time I tried

The most unfortunate of which for me is remote development. So convenient, nothing compares :(

That's weird, AFAIk VSCodium only strips telemetry and changes branding. It shouldn't actively break addon.

Unless they check if they're running inside of the actual MS VSCode, which could explain why they aren't working

sigma vim user

Omega neovim user

gigachad ed user

Ed is king. Every single time I have to work on a severely resource constrained system I always use Ed.

That's literally never happened to me but that won't stop me from saying it.

I mean, I don't know how severly resource constrained a system has to be to not even be able to run vi.

I once used Linux on an actual honest-to-God teletype.

Granted, it was set up as a novelty and the thing it was hooked up to was a Pi 4, but still.

Except I'm too dumb to use even the neovim plugin manager let alone configure the thing. I have to copy existing configs like a noob :(

Isn't copying from others how everyone does (neo)vim? Besides, I'm even "worse" and just use lazyvim.

My serial killer trait is that I use vi instead of vim cause I'm too lazy to type the extra character. Tho if for some reason, vi tab completed to vim, I'd probably use vim

alias v=vim. There, just saved you two keystrokes.

{vi} = 2 {vim} = 3 {v=vim} = 5

I'd need to run vi at least 5 times to have a net gain in saving keystrokes. I'm typically in effemerial systems created by the users of our env, so rarely am I going to gain those strokes back

But also, why am I trying to apply logic to this? I'll often cat a file before editing it. This shit is just illogical idiosyncrasies I've picked up over the years. I'm probably creating posthoc justifications for insane things I do cause it's hard to override muscle memory

effemerial is new to me

Here's a link I found that might be good if you are interested in more:

https://cloudnativenow.com/topics/ephemeral-idempotent-and-immutable-infrastructure/

https://guymorton.medium.com/persistent-and-ephemeral-infrastructure-as-code-in-aws-42b33939dcf1

There are different levels of effemeriality. The simplest example I use daily would be an autoscaling group in AWS. Especially if you use Spot Instances to save money, thi gs may scale in and out whenever.

So if a development team creates a new autoscaling group and I need to get into an instance to test something, unless I add stuff to their IaC, I'm stuck with their configuration. I need to assume that every time I ssh into one of those instances, it's a brand new instance. But it'd be a big challenge for me to go to their repo and make a PR to alias a command whenever an instance in that resource is created

Stuff can be even more temporary if it's something like an ECS task which creates a container with a read only filesystem only when a task is needed to be done. But I don't want to get too deep in the weeds (or deeper than I already have)

terraform workspace will at least stick around for a while so you might be in and out of the same system multiple times.

I use nano.

Nano >> vi/vim, emacs

4 letters < 2 letters.

vi forever.

Simplicity > Complexity

Not if you need any work done.

That's when you switch to a IDE.

Neovim and emacs are IDEs.

Yes, if you can remember the shortcuts...

M-x IDE

You can customize all the shortcuts and create custom ones. I'd recommend utilizing the leader key concept, and centering your keybindings around that. For text editing, just use evil-mode, once you build up muscle memory with those Vim bindings it's just awesome.

Nano is the best when you just need an editor, you can as well use an IDE instead of vi(m) or Emacs.

Alias?

Aliases are just bloat! You can do just fine without them. Heck, why not remove the ASCII conversion and read everything in hex or binary?

It's all about SPEED and efficiency here!

I'm in DevOps so I'm in a lot of effemerial systems so in practice, I will run into systems where profile hasn't been set up. Tho I do like the idea of making sure all systems properly have that aliased cause it'd be serial killer vibes to spend hours of time to make sure that I can save a keystroke.

Tho it'd never make it through PR. Also, wild require explaining to my coworkers that I do this

Most all distros alias vi to vim already, so it makes no difference.

You use vi because you are lazy.

I used vi because I am too stupid to close it.

We are not the same.

I'll have to check tomarrow if RHEL and UBI do this.

Did some quick googling and looks like cent has that alias by default but doesn't do it when root. Which would explain why I do get inconsistent results with vi. I never thought about it in detail besides just knowing that there are some visual changes. Thanks for the info, I'll be noticing this now that I know!

Vi is totally fine to quickly make small changes to e.g. a config file on a server. I wouldn't like to program in vi though.

You are missing out! I used to only use vim to edit config files. So I knew my way around (albeit, slowly). I installed the IdeaVim plugin a week ago and learned some new key bindings I wasn't using. A week in I'm almost faster than before! And it's only going to get better after I've acquired muscle memory (I'm nearly there.) and move on to complex key bindings/sequences. Then it will probably be as if the cursor is directly connected to my mind. I'm hopeful because I've seen a mentor of mine do it.

What am I missing out on? I use vi to change values in files on servers. What would you use for that task? Most of my other text-based work like writing Emails, taking notes or programming happens in Emacs.

I don't think you understood what I said. I started using vim key bindings ALSO in my IDE and my speed improved because of it. I didn't ask you to stop using vi. I merely suggested that you used MORE of it. If your Emacs setup already use vim keybindings that's exactly what I'm doing too.

Oh thanks, now I got it. I agree, vi/vim bindings are awesome. I use them everywhere, in Emacs, in my shell, my browser, and in my tiling window manager. When I said, that I wouldn't want to program in vi, I didn't mean that because of the keybindings, I meant that because vi just lacks many useful features for programming and you can't add plugins to it. I have programmed in Neovim for over a year though. Just switched to Emacs, because it has even more features, possibilities and customizability. I will never drop Vim keybindings though.

Awesome! How did you get them in the shell and browser? Now I am also curious.

I use the fish shell. In fish, you can just add fish_vi_key_bindings to your config file and now Vi bindings will be automatically enabled when you start fish. For bash, it's set -o vi and for zsh it's bindkey -v. For the browser, you can install plugins like Vimium (Vimium-FF for Firefox) or Tridactyl. I find these to be incredibly useful, I love navigating around websites with j and k or d and u, jumping up with gg and down with G, searching with /, closing tabs with x, reloading websites with r, opening new tabs with t, going back and forward with H and L, etc.

1 more...

I do most of my programming in vscode but when I need a cli editor, I use vi

1 more...
1 more...

Emacs sucks. Vim is so much better. And vscode is okay.

Go ahead. Down vote me. I don't care. This isn't Reddit lol.

Vim is a pain to configure

Try Lunarvim, it's neovim with a bunch of great Plugins and configuration settings out of the box.

I'm going to give what I've realized newer folks to Vim think is a scorching hot take: VimL is nice. Theyre the same editor commands you use in your day to day life, even if you're using NeoVim + Lua, just all written out in a file.

That said, using NeoVim + Lua makes it far easier to organize your config, which also makes it easier to write more complex configs. It's like the difference between building a shed around back for your home office vs building a cathedral. Its fine to work in a shed, but once you know you can build a cathedral, you're kinda tempted to just up and do it

At first maybe. But when you get your vim config well honed over time you're good. Plus there's things like pathogen or other frameworks to add plugins and stuff.

I use vscode with vim key bindings. It's amazing!

I use both emacs and vim, each have their own use cases

You guys recommend VSCodium over VSCode. Is there a working sync solution similar to the one built into VSCode where you can sync all settings and extensions between machines?

I generally code in VSCode, and manage org-roam notes and information in Emacs. Works well enough for me.

Any particular reason why you don't code in Emacs? Since you already set up Org Mode and Org Roam, I'm sure you know how the configuration works and how to write some Elisp. It's actually not that much work to set up all the things you would need for programming (lsp-mode, etc.)

I guess I just preferred VSCode for coding? Every time I've tried to use Emacs for my coding workflows I've given up, I think I'm just used to VSCode in that respect. It is weird, I know.