summaryrefslogtreecommitdiffstats
path: root/2022/captions/emacsconf-2022-eshell--top-10-reasons-why-you-should-be-using-eshell--howard-abrams--answers.vtt
blob: ab7a4207244d990a682a6372da96bd2072a3d354 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
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.