WEBVTT 00:00.000 --> 00:03.580 Thanks, Howard, for the great talk. 00:03.580 --> 00:05.580 We have the Q&A now open. 00:05.580 --> 00:09.740 Folks are welcome to put their questions on the pad on IRC, and we might also open up 00:09.740 --> 00:14.500 this room in a few minutes if you might prefer to join Big Blue Button directly and ask your 00:14.500 --> 00:16.300 questions to Howard that way. 00:16.300 --> 00:19.960 Yeah, so Howard, take it away. 00:19.960 --> 00:20.960 Thank you, thank you. 00:20.960 --> 00:24.020 Yeah, I wasn't expecting to have a Q&A. 00:24.020 --> 00:28.180 Tried to condense it so fast because this was supposed to be a lightning talk, but hey, 00:28.180 --> 00:31.280 it's good to talk to everybody. 00:31.280 --> 00:37.080 So question on the Etherpad here is, do I fall back to vterm only when needing terminal 00:37.080 --> 00:39.120 emulation? 00:39.120 --> 00:46.160 And yeah, I kind of know when I'm going to need that based on the use case. 00:46.160 --> 00:50.000 Like right now, I'm doing a lot of building with Docker, and Docker just makes a mess 00:50.000 --> 00:51.060 out of everything. 00:51.060 --> 00:56.460 And so I can sometimes will like start up a vterm for that. 00:56.460 --> 00:59.920 But I don't like actually typing a lot of stuff in there as much. 00:59.920 --> 01:06.400 So actually, I wrote a little program to, you know, the compile command, I just send 01:06.400 --> 01:10.560 the compile over into it that I could see the output and then I could just and it pops 01:10.560 --> 01:12.080 right back to where I'm at. 01:12.080 --> 01:17.920 So I don't know, I think you kind of need to use a little bit of both. 01:17.920 --> 01:22.280 But yeah, it would be nice to kind of flip a window back and forth because there's some 01:22.280 --> 01:26.700 things about Eshell that I actually do like a lot. 01:26.700 --> 01:34.240 Now my Tramp suggestion, okay, I'll admit Tramp is, it's kind of fickle. 01:34.240 --> 01:39.920 I think we all get sometimes better use cases out of it than others. 01:39.920 --> 01:45.200 Uh oh, my headphones are out of batteries here. 01:45.200 --> 01:48.640 So we might have to flip here. 01:48.640 --> 01:51.280 But yeah, so the Tramp, I don't know. 01:51.280 --> 01:56.320 I think we have to kind of play with it and see how it goes. 01:56.320 --> 02:02.480 See another question is, have we thought about adding the Eshell manual? 02:02.480 --> 02:10.340 You know, after doing this talk and I'm realizing a lot of the half baked or almost good stuff 02:10.340 --> 02:15.120 with Eshell that we could just kind of fix a little bit and some of the, especially some 02:15.120 --> 02:21.520 of the docs, yeah, I'm kind of thinking that maybe, maybe I should hook up with somebody 02:21.520 --> 02:27.120 and we could try to do a little bit of extensions there, you know, like fix up the manual a 02:27.120 --> 02:31.840 little bit more, make it more of a tutorial, I think would help as well as fixing some 02:31.840 --> 02:34.560 of the little problems like that. 02:34.560 --> 02:43.200 Trying to be able to cat a buffer into the shell, I think is pretty useful. 02:43.200 --> 02:46.160 Let's see, do I know if Eshell can be used from Elisp? 02:46.160 --> 02:48.160 Yeah, I use that quite a bit. 02:48.160 --> 02:52.920 I actually have functions that call an Eshell command. 02:52.920 --> 02:59.440 That way I get all of the, you know, the benefits that you can get from an Eshell, like with 02:59.440 --> 03:02.000 the predicates and all that kind of thing. 03:02.000 --> 03:06.480 I can't remember who's been doing it, but lately I've been seeing a lot of the do what 03:06.480 --> 03:13.400 I mean shell commands that they're, they're building up a bunch of functions that do very 03:13.400 --> 03:16.360 specific things, what they need. 03:16.360 --> 03:23.120 And it seems like there's a lot of like special commands they're adding into it to like get 03:23.120 --> 03:24.960 the file name and that sort of thing. 03:24.960 --> 03:29.680 And I was thinking, Hey, that's a great idea, but let's do it with Eshell. 03:29.680 --> 03:33.880 So I've been doing something similar, but just calling out to Eshell itself. 03:33.880 --> 03:39.800 Let's see, next question, how does that interplay with my literate dellop bop approach? 03:39.800 --> 03:41.760 Yeah, the two are different. 03:41.760 --> 03:48.600 You know, when I'm doing my literate work, you know, I'm in an org file and I'm just 03:48.600 --> 03:56.720 writing commands, but yeah, sometimes it's just a little bit, you know, I'm not planning 03:56.720 --> 03:57.720 on keeping it. 03:57.720 --> 04:02.720 I'm just kind of investigating things and that's what rebels are really good for. 04:02.720 --> 04:06.840 And in that case, yeah, I'll pop over into Eshell, write things. 04:06.840 --> 04:11.640 If I see something good, that's where I was talking about my little engineering notebook, 04:11.640 --> 04:17.080 sending it out to a capture and then, and capturing it out or writing it into a buffer 04:17.080 --> 04:19.600 where I can do more things to it. 04:19.600 --> 04:23.960 I guess it's the flexibility I think we all kind of need because you don't know exactly 04:23.960 --> 04:25.920 where you're going until you're halfway there. 04:25.920 --> 04:29.100 And it's like, Oh, I don't want to start up a new app. 04:29.100 --> 04:32.200 That's why we're an Emacs. 04:32.200 --> 04:33.200 So yeah. 04:33.200 --> 04:34.200 Oh yeah. 04:34.200 --> 04:35.200 Thank you. 04:35.200 --> 04:36.200 Yeah. 04:36.200 --> 04:37.200 Alvaro Ramineers. 04:37.200 --> 04:38.200 Yeah. 04:38.200 --> 04:40.880 That's the stuff I've been reading a lot about. 04:40.880 --> 04:41.880 Let's see. 04:41.880 --> 04:42.880 Another question. 04:42.880 --> 04:47.340 Do I have a strategy for getting around Eshell's lack of support for input redirection? 04:47.340 --> 04:50.520 You know, it is what it is. 04:50.520 --> 04:54.900 I don't have any ideas at the moment. 04:54.900 --> 04:56.480 It's a good idea. 04:56.480 --> 05:03.160 Whenever, you know, we're so used to doing pipes and whenever you start doing a pipe 05:03.160 --> 05:08.040 at all, Eshell just immediately throws it into the shell. 05:08.040 --> 05:11.280 But then pulling it back in is kind of difficult. 05:11.280 --> 05:15.480 So that's why I just started writing them out to buffers and then pulling them back 05:15.480 --> 05:16.480 in. 05:16.480 --> 05:21.720 And I find that just a little bit more useful situation for what I'm doing. 05:21.720 --> 05:27.040 I don't know if other people will find it as useful as I do. 05:27.040 --> 05:31.440 But yeah, I'm getting a little tired of trying to get just the right command of piping everything 05:31.440 --> 05:32.440 together. 05:32.440 --> 05:38.200 And two years ago when I was talking about my little piper idea, this is kind of what 05:38.200 --> 05:44.040 it's morphed into was just using Eshell, running the commands, editing the stuff and then pulling 05:44.040 --> 05:47.400 it back in to send it to some other app. 05:47.400 --> 05:54.720 Or not even pulling it back in, just using it at that point and sending it off into emails. 05:54.720 --> 06:02.400 Yes, you can call elist functions, the commands. 06:02.400 --> 06:05.560 I was hoping this could be kind of clarified a little bit. 06:05.560 --> 06:12.520 But if you have any function, any emacs list function that starts with Eshell slash, that 06:12.520 --> 06:14.880 gets called first before any command. 06:14.880 --> 06:18.800 So you can override just about every shell command. 06:18.800 --> 06:20.240 That many of them are. 06:20.240 --> 06:22.400 So there is an Eshell slash ls. 06:22.400 --> 06:27.560 So if you type ls into your Eshell, it's actually calling that function. 06:27.560 --> 06:32.540 Now most of those functions will, if it runs into too many options that it doesn't know 06:32.540 --> 06:40.040 about or something like that, call out to whatever ls program you've got installed. 06:40.040 --> 06:44.600 But that's how it goes. 06:44.600 --> 06:48.120 So yes, buffers are superior pipes. 06:48.120 --> 06:50.880 Whoever is typing that, I think that's a great idea. 06:50.880 --> 06:55.840 I think that's kind of the concept that I'm realizing this year. 06:55.840 --> 07:06.320 Hold on one second while I switch headphones here. 07:06.320 --> 07:08.640 I suppose you can still hear me, right? 07:08.640 --> 07:11.960 Yep, I can still hear you. 07:11.960 --> 07:18.760 Well, nobody's talking yet. 07:18.760 --> 07:20.800 I can still hear you. 07:20.800 --> 07:22.720 OK, perfect, perfect. 07:22.720 --> 07:23.720 And I can hear you too. 07:23.720 --> 07:26.800 So that works well. 07:26.800 --> 07:28.260 Let's see. 07:28.260 --> 07:30.280 Any other questions in the IRC? 07:30.280 --> 07:35.040 Not seeing them mostly in the etherpad here. 07:35.040 --> 07:42.600 Do I have a preferred method for getting argument completion for shell commands? 07:42.600 --> 07:46.120 OK, that's a really good question. 07:46.120 --> 07:53.720 There is a function that I found in Eshell for getting options. 07:53.720 --> 07:57.620 And it's like, great, that's what I was expecting, something like a get ops. 07:57.620 --> 08:02.040 So I start playing around with it, and it's like almost there. 08:02.040 --> 08:05.160 The problem is it's not really as flexible as I would think. 08:05.160 --> 08:08.320 It either takes command line arguments or it doesn't. 08:08.320 --> 08:13.880 And it's kind of made for very simple commands only. 08:13.880 --> 08:18.200 So well, I ended up writing my own. 08:18.200 --> 08:22.480 So I wrote kind of a get ops like function, kind of behaves like it, where you can give 08:22.480 --> 08:28.240 it a list of single commands, a list of those long commands, some that take options and 08:28.240 --> 08:30.280 some that don't. 08:30.280 --> 08:36.920 And you'll see that in my, where I've got it here in the etherpad up on the full code. 08:36.920 --> 08:41.200 I also posted it up on Mastodon as well earlier. 08:41.200 --> 08:44.240 But I have a link to my configuration file. 08:44.240 --> 08:45.240 It's all literate. 08:45.240 --> 08:50.200 So you can just scroll down, search for get ops, and you'll see my function. 08:50.200 --> 08:53.720 I haven't fully tested out everything yet. 08:53.720 --> 08:57.720 Most of the code was actually written for this talk, I found. 08:57.720 --> 09:01.200 And so there will be bugs. 09:01.200 --> 09:07.340 But you know, you might find it interesting to grab some of the stuff and play around 09:07.340 --> 09:08.340 with it. 09:08.340 --> 09:10.440 If you find some bugs, please send them back to me. 09:10.440 --> 09:14.320 I'll discover them soon enough. 09:14.320 --> 09:19.720 So is it possible to get L.base completion for elist calls and eshell? 09:19.720 --> 09:20.720 Good question. 09:20.720 --> 09:23.920 I don't know. 09:23.920 --> 09:28.160 I have been switching from company mode to Corfu. 09:28.160 --> 09:30.120 Just try it all out. 09:30.120 --> 09:37.080 I'm getting some pretty good completions, but the EL doc based would be, that would 09:37.080 --> 09:43.120 be very lovely. 09:43.120 --> 09:45.040 A plan nine smart shell. 09:45.040 --> 09:46.400 Sorry, sorry. 09:46.400 --> 09:47.400 Oh, yes. 09:47.400 --> 09:58.160 I do remember reading Mickey Peterson's article on eshell and his plan nine idea. 09:58.160 --> 10:04.240 I was playing around with it for a little bit, but I don't know. 10:04.240 --> 10:05.240 Yeah. 10:05.240 --> 10:11.720 I couldn't get it quite working the way I thought I would want it to, so I didn't follow 10:11.720 --> 10:12.720 through. 10:12.720 --> 10:18.600 But I just got some good ideas there. 10:18.600 --> 10:21.080 Any other questions? 10:21.080 --> 10:27.680 But yes, I should, yeah, I should revisit Mickey Peterson's ideas. 10:27.680 --> 10:28.680 Say it again. 10:28.680 --> 10:29.680 Cool. 10:29.680 --> 10:30.680 Yeah, sorry. 10:30.680 --> 10:32.720 I guess I was just going to ask a question on the fly here. 10:32.720 --> 10:33.720 Sure. 10:33.720 --> 10:38.040 Yeah, which is, so you mentioned this sort of get up function or get up like function 10:38.040 --> 10:39.040 that you implemented. 10:39.040 --> 10:43.840 Would you consider maybe having that integrated in Emacs core itself so that it's available 10:43.840 --> 10:46.880 to all other eshell users? 10:46.880 --> 10:54.040 I think that'd be a great idea and I'm kind of thinking I need to kind of see what should 10:54.040 --> 11:00.760 go into eshell and what should maybe be like a side package like eshell ext kind of thing 11:00.760 --> 11:07.200 for getting some extra stuff because I don't know if everybody wants all of it. 11:07.200 --> 11:13.800 So having a side package might be a really good idea and then seeing, yeah. 11:13.800 --> 11:15.760 So yes, if you want to work on it with me. 11:15.760 --> 11:16.760 Yeah, sure. 11:16.760 --> 11:17.760 Sounds good. 11:17.760 --> 11:18.760 Why not? 11:18.760 --> 11:19.760 Sure. 11:19.760 --> 11:20.760 Sure. 11:20.760 --> 11:23.840 All right. 11:23.840 --> 11:30.200 Any other questions or good? 11:30.200 --> 11:32.360 I think we still have about, sorry. 11:32.360 --> 11:33.360 Go ahead. 11:33.360 --> 11:36.760 Oh, I was going to say I think we're out of questions. 11:36.760 --> 11:37.760 Right? 11:37.760 --> 11:38.760 Yeah. 11:38.760 --> 11:39.760 But we still are not out of time yet. 11:39.760 --> 11:49.400 So I think I've got more time for Q&A than I thought I had for the actual talk. 11:49.400 --> 11:52.280 Yeah, it's been interesting. 11:52.280 --> 11:57.360 So we were kind of debating on switching to two tracks like we have done this year or 11:57.360 --> 12:01.240 keeping or maintaining the same setup as the previous years, which was one track. 12:01.240 --> 12:06.280 But sort of all the talks were very like squeezing together and it was a last minute decision 12:06.280 --> 12:07.280 kind of. 12:07.280 --> 12:10.000 And we almost did end up going back to one track. 12:10.000 --> 12:11.000 But we're here. 12:11.000 --> 12:14.760 And I think that's the reason why some of the Q&As are sometimes longer than the talks 12:14.760 --> 12:15.760 themselves. 12:15.760 --> 12:18.080 Well, okay. 12:18.080 --> 12:22.340 So personally, I love the two track idea and I love all the breaks. 12:22.340 --> 12:27.200 It's made it a lot easier because last year it's like, oh, I can't even get up. 12:27.200 --> 12:29.860 Yeah, I feel you. 12:29.860 --> 12:30.860 And I feel the same too. 12:30.860 --> 12:34.940 Both, I mean, as someone who's been a little bit watching, but also as organizers, I mean, 12:34.940 --> 12:39.360 you couldn't catch a breath with like that one track rapid fire of talks one after another. 12:39.360 --> 12:41.760 So this is much better, I feel like. 12:41.760 --> 12:42.760 Yeah. 12:42.760 --> 12:43.760 Yeah. 12:43.760 --> 12:44.760 So let's keep it. 12:44.760 --> 12:45.760 Let's keep it going. 12:45.760 --> 12:46.760 Yeah. 12:46.760 --> 12:48.760 And next year, maybe I can do 15 minutes. 12:48.760 --> 12:49.760 Yes. 12:49.760 --> 12:50.760 Mal? 12:50.760 --> 12:51.760 Yes. 12:51.760 --> 12:54.560 Are you the maintainer of Eshell now? 12:54.560 --> 12:56.560 No, I'm not. 12:56.560 --> 12:59.680 Just an interested bystander. 12:59.680 --> 13:03.200 I think Eshell is still just part of Core. 13:03.200 --> 13:09.260 John Wiggly wrote it originally, but I think it's just part of the core. 13:09.260 --> 13:13.540 So I don't think anyone is maintaining it per se. 13:13.540 --> 13:18.160 It certainly is getting a little long in the tooth and we probably need to do some updatings 13:18.160 --> 13:19.160 on it. 13:19.160 --> 13:21.720 So maybe that's what we should do for version 30. 13:21.720 --> 13:27.400 Yeah, I've started to use it a little bit more just because of all the chatter on the 13:27.400 --> 13:29.100 various blogs, right? 13:29.100 --> 13:31.240 There is a lot of chatter lately. 13:31.240 --> 13:38.080 But it burned me recently for like half an hour because I was trying to SSH into a machine 13:38.080 --> 13:39.080 from Eshell. 13:39.080 --> 13:45.240 And usually, I use just regular shell mode. 13:45.240 --> 13:53.160 And for some reason, it just didn't connect up to the SSH agent or whatever. 13:53.160 --> 13:57.840 So I was thinking that everything's broken and stuff. 13:57.840 --> 13:59.800 I'm like running around trying to do stuff. 13:59.800 --> 14:03.600 Oh, it's just because I'm in Eshell trying to do this. 14:03.600 --> 14:04.600 Yes, yes. 14:04.600 --> 14:07.600 And if I know I'm going to be SSHing into a box, I don't. 14:07.600 --> 14:10.280 I just start up vterm and go. 14:10.280 --> 14:12.280 Then I know it's going to be pretty good. 14:12.280 --> 14:16.240 I've had a lot of good success in that regard with vterm. 14:16.240 --> 14:21.360 However, the problem is it's hard to pull that kind of stuff back. 14:21.360 --> 14:25.040 Like I'll find something interesting and it's like, oh, crap. 14:25.040 --> 14:31.400 Now I have to control C, control T, and then go up and collect it as opposed to shooting 14:31.400 --> 14:37.040 it out over into an org file with a redirection. 14:37.040 --> 14:41.480 That's why I've been kind of playing around with just using Tramp in Eshell as opposed 14:41.480 --> 14:44.040 to SSHing in. 14:44.040 --> 14:46.040 My knowledge may vary. 14:46.040 --> 14:51.400 I thought in the command interpreter, there's some stuff like... 14:51.400 --> 14:52.400 There is. 14:52.400 --> 14:57.760 It's supposed to be the visual commands. 14:57.760 --> 15:02.200 I think there's a list of them, and SSH is one of those. 15:02.200 --> 15:11.920 It's supposed to then start off as a shell mode, detached little process and feed stuff, 15:11.920 --> 15:13.560 but I don't know. 15:13.560 --> 15:16.680 I haven't had as much luck with it, so I haven't really bothered. 15:16.680 --> 15:18.320 I just jump. 15:18.320 --> 15:21.400 If I know I'm going to SSH, I'll just start a vterm and go. 15:21.400 --> 15:29.240 Well, I mean, aside from doing SSH, just using... 15:29.240 --> 15:31.320 I think there are a couple commands for... 15:31.320 --> 15:38.720 There's one for taking the command on the command line and putting it into the kill 15:38.720 --> 15:44.880 ring, and there's another one for flushing the buffer, flushing the last output of your 15:44.880 --> 15:55.080 buffer, and it works in many different shell or repl-type environments inside Emacs, but 15:55.080 --> 16:00.520 it doesn't put it into the kill ring, which was sort of confusing to me, so I'll have 16:00.520 --> 16:07.000 to dive into the Elisp at some point and figure out how to get what I want. 16:07.000 --> 16:09.680 I think that's the problem with this Eshell. 16:09.680 --> 16:19.860 There's a lot of interesting ideas, but there's a lot that's not quite baked yet. 16:19.860 --> 16:26.280 It's a combination of what we expect, because it's not a terminal emulator shell. 16:26.280 --> 16:32.760 It's not like Bash, it's different, but it's got some cool stuff, so there's expectation, 16:32.760 --> 16:38.560 and then there are just bugs and things that haven't been finished. 16:38.560 --> 16:41.080 I can't remember who started... 16:41.080 --> 16:48.400 I've got a link in my configuration file, but somebody was writing on how to get the 16:48.400 --> 16:55.320 output from the last command in shell, shell mode, and I thought, that's a great idea. 16:55.320 --> 17:01.640 I want that in Eshell, and then I found the source code that there's a double dollar sign 17:01.640 --> 17:02.640 that's already there. 17:02.640 --> 17:03.640 Great. 17:03.640 --> 17:04.640 Wait a minute. 17:04.640 --> 17:05.640 It doesn't work all the time? 17:05.640 --> 17:10.640 What the hell? 17:10.640 --> 17:15.720 When I saw that in your talk, I was like, oh, that's one of the things I've been looking 17:15.720 --> 17:16.720 for. 17:16.720 --> 17:17.720 It is, exactly. 17:17.720 --> 17:22.640 Now, I'll admit, the underpinnings are really good. 17:22.640 --> 17:28.520 It didn't take long to actually make that and fix it, and then make it even better. 17:28.520 --> 17:32.800 Like putting in a kill ring, it's like, now that is nice, so that I could just grab it 17:32.800 --> 17:34.120 as an array and go. 17:34.120 --> 17:35.120 That's really good. 17:35.120 --> 17:37.600 So, I think there's a lot of good stuff there. 17:37.600 --> 17:42.200 I think, yeah, let's just make some features. 17:42.200 --> 17:48.000 Let's make an extension, and let's assign the copyright to the BFSS. 17:48.000 --> 17:53.080 Yeah, maybe I'll start looking at Eshell after. 17:53.080 --> 17:58.440 I'm playing around with org-node right now, trying to catch up to some of the forks, but 17:58.440 --> 18:02.840 maybe Eshell is another, the next thing to sort of poke at. 18:02.840 --> 18:05.840 Aren't there so many fun things to do? 18:05.840 --> 18:08.840 It's terrible. 18:08.840 --> 18:13.880 Great, great, great. 18:13.880 --> 18:17.960 I got another question over here in the IRC, do you ever fall back to terminals and shells 18:17.960 --> 18:20.160 outside of Emacs? 18:20.160 --> 18:32.260 Okay, that, all right, confession time, yes, I sometimes use iterm. 18:32.260 --> 18:37.920 So when I, so when I first boot up, I do have to use a terminal before I start up Emacs 18:37.920 --> 18:39.840 because it's got to mount everything. 18:39.840 --> 18:46.040 So I do use iterm, and yeah, sometimes if it happens to be there, I'll type the command 18:46.040 --> 18:51.040 in there instead of running into Emacs. 18:51.040 --> 18:56.440 But I just find running those terminals to be pretty frustrating because most of them, 18:56.440 --> 19:04.480 you have to use a mouse to copy and select stuff. 19:04.480 --> 19:08.480 Yeah and actually I could maybe chime in here and say that yeah, exactly, not only for terminals 19:08.480 --> 19:15.960 but also for IRC clients, I feel like I've tried using a bunch of different ones, yeah, 19:15.960 --> 19:20.880 but it ultimately comes down to I can't just put the cursor up, you know, quickly grab 19:20.880 --> 19:23.920 something, kill it and paste it somewhere else or just use it. 19:23.920 --> 19:28.040 And yeah, that's, I feel like one of the killer features of Emacs or anything that's built 19:28.040 --> 19:29.040 into Emacs. 19:29.040 --> 19:30.040 Mm-hmm. 19:30.040 --> 19:31.040 Mm-hmm. 19:31.040 --> 19:32.040 Agreed. 19:32.040 --> 19:39.320 Lounge679 says, what are the less well oiled parts of Eshell and the edge cases? 19:39.320 --> 19:45.960 Yeah, that's a great phrasing, less well oiled parts. 19:45.960 --> 19:51.760 There's just a little friction and I think we need to figure out how to fix those things 19:51.760 --> 19:54.360 when we encounter them. 19:54.360 --> 20:01.440 Yeah, I should make a list of the things I found and hey, Mal, you give me a list too. 20:01.440 --> 20:02.440 And yeah. 20:02.440 --> 20:09.040 I think one of the problems with Eshell is that it's not based on comment, like shell 20:09.040 --> 20:10.040 and- It isn't. 20:10.040 --> 20:17.400 Yeah, and as a result, the other shells have like a uniform interface and uniform key bindings 20:17.400 --> 20:19.040 for doing things. 20:19.040 --> 20:25.360 And Eshell does things slightly differently, different enough that- 20:25.360 --> 20:26.360 That's right. 20:26.360 --> 20:27.360 Yeah. 20:27.360 --> 20:28.360 Yeah, exactly. 20:28.360 --> 20:29.360 And that's good and bad. 20:29.360 --> 20:30.480 It's doing something totally different. 20:30.480 --> 20:35.280 And if you know that it's just gonna be different and you'll treat it differently, at least that's 20:35.280 --> 20:36.280 how I found. 20:36.280 --> 20:42.280 So that's why I'm jumping between the vterm and Eshell, depending on what I'm trying to 20:42.280 --> 20:43.340 do. 20:43.340 --> 20:48.760 But I'm just finding there's a lot of interesting stuff in Eshell, but it changes how we run 20:48.760 --> 20:49.760 things. 20:49.760 --> 20:56.240 I think it's very similar to, well, I mean, if, okay, I'm not blaming names, but if you're 20:56.240 --> 21:01.080 a VI user, you're starting with a terminal and you're running commands. 21:01.080 --> 21:04.400 And then when you need to edit a file, you edit, you come back, but the shell is kind 21:04.400 --> 21:05.400 of your main focus. 21:05.400 --> 21:10.160 Well, we're all over here in Emacs and we just run commands from Emacs, right? 21:10.160 --> 21:12.280 That's just how we behave. 21:12.280 --> 21:19.680 And using Eshell is this way where don't go all the way, don't try to, but you can kind 21:19.680 --> 21:22.300 of pretend and do different things. 21:22.300 --> 21:30.320 So yeah, so that's why I say it kind of changes our behavior because it's doing things differently. 21:30.320 --> 21:34.560 So you can't look at it as another common. 21:34.560 --> 21:43.600 Wait, so when you say you're using vterm, does that mean you're using, that's a separate 21:43.600 --> 21:49.920 application outside of Emacs or is there a, oh, oh, yeah. 21:49.920 --> 21:55.960 So vterm is, I don't know when it came out, a couple of years ago, I don't know the details 21:55.960 --> 22:02.960 of it, but it's using a module library to do all the heavy lifting. 22:02.960 --> 22:07.720 So it's just a little better comment and I've just found it to be a lot, very reliable and 22:07.720 --> 22:08.840 pretty fast. 22:08.840 --> 22:16.480 So especially when I'm SSHing into another machine in my data centers and especially 22:16.480 --> 22:21.200 building all the Docker and some of the weird terminal stuff that I need to do in those 22:21.200 --> 22:28.280 shell environments using SSH, I just find vterm to be really good for what that does. 22:28.280 --> 22:29.280 Oh, okay. 22:29.280 --> 22:30.280 I see it now. 22:30.280 --> 22:31.280 It's on an alpha. 22:31.280 --> 22:32.280 All right. 22:32.280 --> 22:33.280 Yeah. 22:33.280 --> 22:39.880 It is in the, you're still in Emacs, but the key bindings are pretty good, but you do, 22:39.880 --> 22:47.280 you know, it has two modes, one for selecting text and then one for being a terminal. 22:47.280 --> 22:50.280 Maybe I'll try that out instead of metax-gel. 22:50.280 --> 22:54.240 Yes, I would, if you can. 22:54.240 --> 22:59.200 The problem that I think most people have is building that vterm library. 22:59.200 --> 23:02.960 I haven't had any problems on my work Mac. 23:02.960 --> 23:04.480 So it's been pretty good for me. 23:04.480 --> 23:05.480 Okay. 23:05.480 --> 23:06.480 All right. 23:06.480 --> 23:12.240 That's good to know about too, but that'll keep me from you like adopting Eshell. 23:12.240 --> 23:13.240 Sure. 23:13.240 --> 23:17.720 You know, that's a nice thing about choices. 23:17.720 --> 23:18.720 Yeah. 23:18.720 --> 23:29.160 You'll just find that vterm, I think behaves exactly like you expect a terminal to act. 23:29.160 --> 23:31.560 And so you won't have, you won't have to do much. 23:31.560 --> 23:35.060 I don't have much in the way of customizations. 23:35.060 --> 23:41.160 It's mostly my customizations is just starting a vterm running SSH automatically. 23:41.160 --> 23:44.600 So it's mostly about working with my external hosts. 23:44.600 --> 23:51.600 And if I may quickly jump in here, I think we have about another minute or so of live 23:51.600 --> 23:55.760 Q&A on the stream at which point then the stream will move on, but you folks are welcome 23:55.760 --> 24:01.440 to stay here or like continue the Q&A on the pad or whatever works best. 24:01.440 --> 24:02.440 Just staying in this room. 24:02.440 --> 24:03.440 Yeah. 24:03.440 --> 24:04.440 And continue talking. 24:04.440 --> 24:05.440 Lovely. 24:05.440 --> 24:06.440 Yeah. 24:06.440 --> 24:12.120 As Karthik has said vterm isn't distracting. 24:12.120 --> 24:18.600 It doesn't, you know, it's, it's just exactly what you expect. 24:18.600 --> 24:20.480 So it's not interesting either. 24:20.480 --> 24:34.320 No, I'm just, yeah, and so there's some good comments on the IRC. 24:34.320 --> 24:35.320 So yeah. 24:35.320 --> 24:36.320 Thanks everybody. 24:36.320 --> 24:37.320 It's been fun. 24:37.320 --> 24:38.320 All right. 24:38.320 --> 24:39.320 I'm going to jump off now. 24:39.320 --> 24:40.320 Nice talking to you, Howard. 24:40.320 --> 24:41.320 You too. 24:41.320 --> 24:42.320 All right. 24:42.320 --> 24:43.320 Thank you all. 24:43.320 --> 24:46.800 I think I'll drop off as well. 24:46.800 --> 24:48.800 All right. 24:48.800 --> 24:50.800 Thank you.