My third session trying out #meow….
My strategy with trying meow is the same as #emacs when I switched from #vim in 2015. I’m noodling around with it on a branch of my dotfiles repo. Basically I give myself low pressure editting tasks to see if I’m really ready to roll with the new setup. When I’m comfortable with that, I’ll try it for work tasks. My current task is editing my init.el file (using meow bindings) to convert it to #meow. I was able to remove all the evil config successfully but it is incredibly awkward atm. Other than not really getting meow bindings, the other stumbling points are kind of surprising since so much of this is very automatic after many decades:
Window (in the emacs sense) management. I relied on C-w commands provided by evil. I’ve been able to replace these with various other commands under the C-w binding, mostly leveraging the built-in winmove.
Undo and redo. Although meow has an undo, there’s no redo binding. I don’t like the emacs bindings, so I decided to go more mainstream on this one and use C-z and S-C-z for undo and redo respectively. I’ve never used C-z to suspend emacs, so it doesn’t seem like a huge loss.
Saving files. I used evil commands for these. The emacs bindings are ok, so I’m training myself to use C-x C-s. I’m already used to C-x C-c so this seems consistent.
Searching and replacing in current buffer. I really liked / and the :s///gc vim commands. C-s is a poor substitute so far. Still working on this.
Surprisingly, other than text editing, things are going well. I’m able to use 90% of emacs without issue. I still don’t grok meow bindings yet, so next is getting up to speed on actually editing.
There seem to be many #Emacs users here in the fedi, so maybe some of you could help me find an answer to my question.
In 1981 Emacs paper, Stallman made the argument that "formal parameters cannot replace dynamic scope", which was an argument for elisp's preference fir dynamic scope.
Yet to my knowledge (and I think I read that in HOPL paper by @sperbsen and @monnier) elisp eventually gravitated towards lexical scoping.
I wonder whether this decision was based on some refutation of Stallman's argument, and if so, can the counterargument be found anywhere in the web?
For all you non-native English speakers out there, “read” is pronounced like “lead”, and “read” is pronounced like “lead”.
Once upon a time in Guatemala, the CIA hired a cocky American actor and two radio DJs to launch a revolution and oust a president. Their playbook is being used against the U.S. right now. Read all 7 parts in order below. https://narratively.com/collection/the-literally-unbelievable-story-of-the-original-fake-news-channel/
Ceci n'est pas un photomontage. C'est fou non ?
En réalité, vous voyez :
- en haut à droite, un mur orangé
- en bas à droite, le reflet du mur
- et la partie de gauche est l'eau sans réflexion à part le ciel
C'est absolument magnifique.
Voir ici: https://petapixel.com/2023/04/17/this-bird-photo-may-break-your-brain-and-no-it-wasnt-photoshopped/
My second session trying out #meow did not go well. However I found out something important.
Unlike #evil meow uses the built-in #emacs keybindings in its implementation (instead of binding to commands). So if I rebind C-b and C-f, then h and l don’t work as expected but now move up and down by a page.
There’s actually a note about it in the sources, and there’s apparently a reason, but now I have to find new keybindings for anything that collides with emacs built-in keybindings. So that includes a number of #vim bindings that I’d rather have than the built-in bindings.
Oh well, I guess I’ll have to adapt more than expected to use meow.
oof, I meant hjkl. And there are other bindings that are similar, it will all help I’m sure.
After having used vi-like keybindings for over 30 years, I’ve decided to try something new and give #emacs #meow a try. The fact that ijkl are there in the default qwerty bindings is a huge plus, and means I can hobble around initially and not completely loose all of my muscle memory (I still use vim occasionally). I am looking forward to jettisoning a ton of evil specific configuration if I can adapt to meow.
The first road-bump I encountered was that the cheat-sheet came up all wonky, so had to spend the first hour or so figuring that out. Turns out I was using whitespace-mode for text files, and that turns on font-lock-mode which messes up the formatting. I think I did that to lazily get whitespace-mode for some text-mode derived modes, so easy fix.
Now that I can cheat, the next road bump are the window management keystrokes under ^W, some of which I’ve grown accustomed to. Haven’t tackled that one yet, and so any ideas are appreciated.
Emacs going towards more and more builtin packages makes development and release more expensive. It also slows down evolution. Debates on the mailing list take time and most users won't see your change until the next release, sometimes 6+ months later.
One reason for this situation is that Emacs only got a package manager relatively recently, and it still is very limited. Furthermore existing package repositories require permission to add new packages, with various conditions.
A leaner Emacs would have a much smaller core and would ship with a default package repository where anyone could push packages without gatekeeping. This would be a net gain for the ecosystem, allowing faster development and a less centralized contribution process.
I really like how #emacs has been over the last few years sprouting packages that integrate well with existing emacs functionality. This is in contrast with older do-it-all packages like helm, ivy/counsel which in my usage have been replaced with vertico/consult/etc and projectile which has been replaced by project.el.
Case in point, someone I follow recently extolled the use of helm-apropos, but in #vertico, the emacs command describe-symbol is enhanced with vertico’s narrowing framework without having to bind to any new functions. It may be not 100% the same as the helm function (I don’t know I’ve not used it), but it does the job well enough in a nice and neatly engineered way.
I really appreciate this burgeoning attention to engineering, orthogonality and separation of concerns. As a software developer myself, I strongly believe this is the way to go.
Old software developer. C++ developer by day, Rust for fun. Linux guy. Hacking on the intersection of #computervision and #neuroscience in my spare time. Fan of #SpaceX, but Elon, not so much.
*** NOTICE ***
I've been getting follows from some fairly dubious accounts, so I'm going to have to approve follows from now on. If you want to be approved, the bar is low, have some followers or a profile that checks out. Be patient, I may not check that often.
#rust #rustlang #emacs #elisp #cplusplus #i3wm #linux #embedded
#space #asciidoc #whisky #bebop