Fork me on GitHub
#emacs
<
2023-02-16
>
otfrom18:02:44

I'm really enjoying meow for editing clojure code. That plus separedit for handling comments in clerk notebooks is really nice. Having a good multiple cursors thing for EDA is really handy when you have things that are almost the same but you need to investigate

👍 2
Benjamin C19:02:52

@U0525KG62 Did you use evil previously? I'm planning to make the switch sometime soon. I'd be curious to see your emacs config with it. :)

otfrom19:02:17

I did. I've been a very long time holy mode user. I've been trying evil for about 6 months now to make sharing in tmate better, and it did work, but getting good mode set ups in evil was a real pain. Meow is like god mode plus a really good multiple cursors

💯 2
otfrom19:02:10

I've tried holy mode, evil, corgi, meow, and boon, and meow seems the best fit

otfrom19:02:16

Early days though

otfrom19:02:42

I think what I really want is a combo of corgi and meow

otfrom19:02:56

The signals in corgi are a good idea

Benjamin C19:02:41

> I think what I really want is a combo of corgi and meow Ah yes, same here! @U4YGF4NGM has a neat setup around meow and signals I plan to pull from: > https://github.com/lilactown/kitten > [3:47 PM] it's still pretty rough. the corkey replacement is in the lisp dir, called reflex > [3:49 PM] you can see here how it's used to bind keys to general capabilities, and then different modules can provide functions for those capabilities for major modes https://github.com/lilactown/kitten/blob/main/user/keybinds.el#L91-L112 > https://github.com/lilactown/kitten/blob/main/modules/kitten-clojure.el#L40-L57 This is his signal library: https://github.com/lilactown/kitten/blob/main/lisp/reflex.el

otfrom19:02:51

Ah, that explains kitten

otfrom19:02:57

That sounds like exactly what I want

lilactown19:02:53

note that reflex isn't exactly the same as corkey. corkey loads the reads the bindings from a file and does some processing of the signals as data before it creates your keymap. this adds some complexity in loading and reloading, but the nice thing is that "it's just data" and you get a sort of immutable keymap that can be realized and inspected. reflex wraps bind-key and mutates the keymap(s) on each signal binding, which is much easier from an impl perspective but you can run into issues with load ordering and errors during binding

lilactown19:02:04

I like the fact that reflex is so easy in terms of impl and still gets me a lot of value, but there's more stuff you can do with corkey. YMMV

Benjamin C19:02:16

Thanks for the clarification! One thing I personally like about reflex is being able to define signals/binds from where I'm setting up my corresponding package, instead of having to hunt down the right spot in the dedicated signals/binds file.

lilactown20:02:04

yeah same 😄

otfrom08:02:47

I'd like to bind NM<> to sexp/combobulate like movements in normal mode. I'm guessing that using signals and thus reflex might help with that?

otfrom08:02:55

(I'm torn between matching hjkl and something more mnemonic, but anyroad)

otfrom10:02:16

hmmm... something weird is going on using meow in emacsclient in a terminal

otfrom10:02:42

I can't seem to switch from insert back to normal mode

otfrom10:02:47

which is... less than ideal

otfrom10:02:20

M-x meow-insert-exit works

otfrom11:02:30

ah, looks like an issue with the escape key in the terminal? (tho I'm not sure why I didn't bump into this when doing evil)

otfrom12:02:56

and now <esc> is working again? Did I hit a weird keycombo or something?

2
lilactown15:02:58

to answer your first question, for meow I don't know if signals are necessary for that. if you always want NM<> to be sexp commands, then it's just as easy to put use meow's meow-normal-define-key

lilactown15:02:15

if you only want it to be sexp commands when in certain modes... well conceptually that would be a good use case for signals, but I assume that meow uses a single global keymap for each mode, I actually have no idea how meow keeps track of binding keys... but if it is a single keymap, then reflex doesn't have a way to specialize

👍 2
otfrom16:02:21

re: my escape problem above. I think I hadn't fully eradicated evil from my config. I'll see if I can repeat it. It didn't just happen in terminal buffers in emacsclient

otfrom16:02:27

@U4YGF4NGM ok, that helps. I think it would be for particular modes as paredit grabs a hold in modes where it is in the hook and takes over from the emacs defaults. combobulate will do the same. Lisps will generally be fine with paredit, but languages will less clear syntax will probably be using combobulate.

lilactown16:02:30

what I did is I defined a custom "paren-mode" that I bind to K which has all of my lisp movements and other stuff

otfrom16:02:24

how do you switch into paren mode?

otfrom16:02:47

(I couldn't figure that out from the docs)

otfrom16:02:57

(or at least as much as I've read in my 1.5 days of meow)

otfrom17:02:56

and then escape or i to go into normal or insert mode. That is cool