No video

Emacs: completion framework (Embark,Consult,Orderless,etc.)

  Рет қаралды 15,758

Protesilaos Stavrou

Protesilaos Stavrou

Күн бұрын

Overview of my new completion framework for Emacs, which consists of a number of modules, namely, Embark, Consult, Orderless, Marginalia, and the default minibuffer. /// Full text of the presentation on my website: protesilaos.co...

Пікірлер: 45
@0netom
@0netom 3 жыл бұрын
What I find unique about these videos is how you give deep reasoning about the choices you make or try to explain the logic behind the various packages. Most documentation elides this kind of background knowledge, which leaves the users wondering the whys. I was really glad that you put into words your frustration about the jumping minibuffer size. I've realized that I prefer popups - live ivy-posframe - over a rubbery minibuffer, but didn't know why. Describing it as motion sickness inducing is very revealing and will help me to explain this issue to others too! I've also realized that having the completions appear above the input line in the minibuffer further reduces this effect, though it would be confusing if it would be a candidate selection area, not just a preview. Maybe we should just put the minibuffer and even the modeline at the top instead, like the document tabs in modern GUIs? Why are these at the bottom? PS: I wanted to support you for all this marvellous work, but unfortunately PayPal doesn't work for me. How else can we support you? Can you enable sponsoring on your Github account?
@protesilaos
@protesilaos 3 жыл бұрын
Hello and thanks for sharing your thoughts! I always try to understand the packages I use. Otherwise I cannot tweak or extend them to my liking. Then it is easier to talk about what I have learnt in the process. I agree with you about the minibuffer paradigm. Its placement should be easier to control. I think the various posframe/child-frame packages hold a lot of promise. The "mini frame" package may be the one that suits my kind of system, though I have not tried it yet: . As for your postscript, that is a topic I have not considered and am hesitant to act upon. If I ever have an update on that front, I will post a video about it.
@0netom
@0netom 3 жыл бұрын
​@@protesilaos i heard reservations from other open source contributors regarding sponsorship. they don't want to do it sometimes because they don't want to feel obliged to their sponsors, in case they feel too entitled and demand them to work on something specific. my feeling as an aspiring sponsor is that im itching to reward the amazing work you are doing and i won't demand anything. i won't stop my sponsorship even if u take a few months break, because i know it would make it more likely u continue this work then. i also feel your work worth more than what i can pay you at once, so im okay with channeling some money to you even while you are taking a break. i see it as compensation in retrospect. i hope sharing my though process will help you think this matter further.
@protesilaos
@protesilaos 3 жыл бұрын
What you write is persuasive and I don't have a good reason not to act on it. Though this is a topic I have not really thought through. Hence my cautiousness.
@SamSam-df4xp
@SamSam-df4xp 3 жыл бұрын
A brilliant vlog (as usual). Very helpful and thank you.
@protesilaos
@protesilaos 3 жыл бұрын
You are welcome and thanks for watching!
@protesilaos
@protesilaos 3 жыл бұрын
@Richard Saunders Hello there! [on switching from Vim] My general approach was to keep an open mind and not try to reproduce what I already had. The idea was to not be biased and to avoid dogmatism: I did not want to, say, dismiss some workflow I had never tried in earnest. So after starting from scratch with zero expectations and with no delusions of turning Emacs into a powerhouse of productivity from day one, I began learning new things and re-considering my habits at the time. Now to your questions: + No, I do not miss Vim's model, even though I thought I was a "Vim-everywhere" kind of user (I had Vim keys for all my programs). It turns out that I am fine with the Emacs style for key bindings. I do, nonetheless, remain of the opinion that key bindings are not essential to the "Emacs way"---using evil-mode will still grant you access to an editable, introspectable, transparent platform that you can adapt to your needs. Also watch: Why Emacs itself is my “favourite Emacs package” - protesilaos.com/codelog/2020-10-21-emacs-favourite-package/ + Yes, I do remap several of the default keys, though my methodology is in line with how they were defined in the first place. + As for your question about the Vim refugee, I would tell them that (1) evil-mode works and there is a large community around it, and (2) I would ask them whether they have ever tried to challenge themselves into doing things differently---if not, then they might want to use the switch to Emacs as an opportunity to do so, just how I did. Somewhat relevant article: Comment on Unix versus Emacs - protesilaos.com/codelog/2020-12-28-comment-unix-vs-emacs/
@protesilaos
@protesilaos 3 жыл бұрын
I guess it is a matter of giving it an honest try. If it doesn't work out, you revert back to what you had.
@craigdanielmaceacher
@craigdanielmaceacher 3 жыл бұрын
This guy understands! Switching to Emacs after 10+ years with Vim I took what I knew about learning Vim with me: there are no shortcuts, learn the default basics well first, and understand the unique paradigms the tool offers and shape your workflow to them, so you are not fighting an uphill fight--too many Vim users dive in and install 50 plugins to try to make it do everything under the sun--the advanced user culls this down to what is necessary and focuses on the value proposition on Vim: it's there with its defaults on nearly every remote server.
@highamnj
@highamnj 3 жыл бұрын
Mind truly blown. I see a dot emacs rabbit hole approaching.
@protesilaos
@protesilaos 3 жыл бұрын
Take it one step at a time. You can make it as simple (or complex) as you like.
@KenranThePanda
@KenranThePanda 3 жыл бұрын
I've just started trying to move from Doom Emacs to a self-rolled configuration yesterday. It's been one hell of a journey so far, because I want to try out some newer stuff and not just put in all the things I didn't even know I used, but rather learn about each and every package I pull in. Your video opened up a whole new world to me! It's great to see someone customize and utilize emacs like the immensely powerful editor it is, and knowing what they're doing. I think that while going down the spacemacs or Doom emacs route is nice for beginners, it hides how Emacs itself works in too many places. Thank you very much for this stunning presentation and insight :)
@protesilaos
@protesilaos 3 жыл бұрын
You are welcome and good luck with creating your own custom Emacs! I think this is the best way to be in control of your setup and understand how everything is pieced together.
@Da5keladden
@Da5keladden 3 жыл бұрын
Thank you for your work and being such an excellent ambassador for Emacs. This video was really good, and even though I'm a helm user myself I will most definitely be looking into Embark and its companions for future use, or maybe to complement my helm workflow.
@protesilaos
@protesilaos 3 жыл бұрын
You are welcome! Helm can already do everything I have covered here (and much more, I guess), so there is no pressing need to switch away from it. The value proposition of the packages I covered here is their modularity: I appreciate them because they make things easier for me; easier to understand and easier to adapt to my needs.
@Da5keladden
@Da5keladden 3 жыл бұрын
@@protesilaos yeah, I agree with you. The modularity is attractive in itself. But, perhaps Embark could be useful outside the minibuffer to complement my current workflow (with helm). Anyhow, this was inspirational and it's also fun to try other packages and find things that fit your needs.
@protesilaos
@protesilaos 3 жыл бұрын
You are right! Embark has a lot of potential outside the narrow confines of the minibuffer. My plan is to make better use of that.
@meathead919
@meathead919 3 жыл бұрын
Thank you so much for this new video. Much appreciated.
@protesilaos
@protesilaos 3 жыл бұрын
You are welcome!
@kojoig
@kojoig 3 жыл бұрын
Thank you very much for your work.
@protesilaos
@protesilaos 3 жыл бұрын
You are welcome! I plan to post at least one more video in the coming days.
@xthebumpx
@xthebumpx 3 жыл бұрын
The more emacs videos you make, the more you look like Richard Stallman :D
@protesilaos
@protesilaos 3 жыл бұрын
It's the beard, I guess.
@mystisification
@mystisification 3 жыл бұрын
Hi Prot! Thanks for the really good vlog and the clear explanations. Would you mind adding "chapters" (youtube's information in the progress bar) to the video? You can just update the description and write something like : 0:00 Packages presentation 4:55 Orderless 10:47 Embark (per-item actions) 18:15 Embark (per-set actions) 27:32 Consult 36:03 Marginalia 37:09 A system I can understand 46:04 Further info Cheers!
@protesilaos
@protesilaos 3 жыл бұрын
Hi! Thanks for doing this. Yes, this is something I should be doing. Will get to it next time.
@mystisification
@mystisification 3 жыл бұрын
@@protesilaos It's very minor now no worries, your material is awesome anyways
@protesilaos
@protesilaos 3 жыл бұрын
Thanks!
@teeI0ck
@teeI0ck 3 жыл бұрын
interesting and insightful. Obrigado 🤝
@protesilaos
@protesilaos 3 жыл бұрын
Thank you!
@alexei3366
@alexei3366 Жыл бұрын
Is it possible to priview files after find file by consult-find? Without close minibuffer.
@techmoerror2206
@techmoerror2206 2 жыл бұрын
Hi Prot! Great vlog as usual, thanks for it! I've just switched from Helm to the Vertico-Consult-Embark combo after watching it. One thing I'm missing though is the ability to call `projectile-switch-project` and have an Embark action to open Dired in the directory of the project I want to switch to. Could I add an Embark action to quickly jump to the target directory?
@protesilaos
@protesilaos 2 жыл бұрын
I think Embark is already capable of doing that. At least on my end, when I call 'embark-act' over a file path, one of its possible actions is 'find-file', which is bound to 'f'. If you hit that key, it works for directories as well, as it will open them in Dired. For context, 'find-file' is what is bound by default to 'C-x C-f'. So the question is whether 'projectile-switch-project' returns a list that Embark interprets as a list of file paths. That I do not know, as I do not use projectile. A quick test would be to check the Marginalia metadata it returns (if you use marginalia). Does it look like that of C-x C-f?
@techmoerror2206
@techmoerror2206 2 жыл бұрын
@@protesilaos Thanks for your reply, Prot! I see... No, it doesn't. `projectile-switch-project` returns a list of the projects I've told `Projectile` to track but this is a list of paths without the goodies that `Marginalia` adds to `C-x C-f`
@J20BlackEagle
@J20BlackEagle 3 жыл бұрын
!!! WOW !!! THANK YOU !!!
@protesilaos
@protesilaos 3 жыл бұрын
You are welcome!
@emvdl
@emvdl 3 жыл бұрын
Thank you
@protesilaos
@protesilaos 3 жыл бұрын
You are welcome! I have made some tweaks since publishing this video, but the idea is the same.
Vlog: Emacs is my "favourite Emacs package"
32:01
Protesilaos Stavrou
Рет қаралды 6 М.
Vlog: Emacs mindset and Unix philosophy
21:23
Protesilaos Stavrou
Рет қаралды 19 М.
OMG what happened??😳 filaretiki family✨ #social
01:00
Filaretiki
Рет қаралды 13 МЛН
managed to catch #tiktok
00:16
Анастасия Тарасова
Рет қаралды 47 МЛН
КТО ЛЮБИТ ГРИБЫ?? #shorts
00:24
Паша Осадчий
Рет қаралды 3,6 МЛН
Emacs: Learn to ask for Help and write Elisp
50:37
Protesilaos Stavrou
Рет қаралды 9 М.
Emacs: ESHELL demo
23:07
Protesilaos Stavrou
Рет қаралды 11 М.
Emacs: mark and register basics
35:34
Protesilaos Stavrou
Рет қаралды 6 М.
Emacs: introduction to bookmarks
24:21
Protesilaos Stavrou
Рет қаралды 7 М.
Emacs: Introduction to ORG-CAPTURE
28:53
Protesilaos Stavrou
Рет қаралды 18 М.
Emacs: modern minibuffer packages (Vertico, Consult, etc.)
44:01
Protesilaos Stavrou
Рет қаралды 14 М.
Using Emacs Episode 80 - Vertico, Marginalia, Consult, and Embark
25:10
Emacs from Source Part 2: vertico, orderless, and marginalia
19:23
Brent Westbrook
Рет қаралды 3,2 М.