Emacs: ESHELL demo

  Рет қаралды 11,577

Protesilaos Stavrou

Protesilaos Stavrou

Күн бұрын

Here I showcase the true power of Eshell, which is the fact that it is interpreting Elisp. I demo the extensions I have programmed for it, showing how Eshell seamlessly integrates with the rest of Emacs. // Check my dotemacs for more: protesilaos.co...
Also refer to these valuable resources:
Mike Zamansky's video demo that also shows how to program an Eshell switcher: cestlaz.github...
Howard Abrahams' video that covers the features of Eshell: • Introduction to EShell
Pierre Neidhardt's detailed blog post on the pros and cons of Eshell: ambrevar.xyz/e...

Пікірлер: 48
@mpereira1
@mpereira1 4 жыл бұрын
I've been using Eshell exclusively as my shell since 2017 and was still able to learn a few things with this video. Thanks Prot!
@protesilaos
@protesilaos 4 жыл бұрын
@Murilo Pereira Thanks! I feel Eshell has a lot of potential. It can basically be customised in every way. The true Emacs style.
@mzamansky
@mzamansky 4 жыл бұрын
Hey Prot - thanks for the shoutout!!! Love your videos and also the themes you wrote.
@protesilaos
@protesilaos 4 жыл бұрын
@Mike Zamansky You are welcome! Given this opportunity, I wish to thank you for your videos. There is always something new to learn.
@SenthilBabuji
@SenthilBabuji 4 жыл бұрын
I feel this is one of the most underrated channels. Thanks Prot for providing great tips and tricks.
@protesilaos
@protesilaos 4 жыл бұрын
@Senthil Babu You are welcome!
@ryanleemartin7758
@ryanleemartin7758 2 жыл бұрын
This channel is very nice indeed!
@protesilaos
@protesilaos 2 жыл бұрын
Haha, you know how it is!
@jeongpyolee717
@jeongpyolee717 4 жыл бұрын
Love Love dear Prot! I missed you so long so much. Nice to see you again!
@jeongpyolee717
@jeongpyolee717 4 жыл бұрын
I want study ancient Greek to read ancient origin text of Plato and Aristotle, Can you give me advice on my quest? 1. to learn first modern Greek language to read ancient Greek? (this guy's suggestion kzbin.info/www/bejne/d5bPfmWwrttoi9U ) 2. to concentrate directly on etymology of ancient greek word study and grammar? 3. new way of study(your point of view?)
@protesilaos
@protesilaos 4 жыл бұрын
@Jeongpyo Lee I think that for your study purposes you should treat Ancient and Modern Greek as two distinct languages. Obviously if you know one you can learn the other, but there still are considerable differences between the two that would greatly complicate your task. I am not aware of a language learning programme that I could recommend. Sorry! What I do know is that the Loeb Classical Library has publications that put English and Ancient Greek side-by-side. The Nicomachean Ethics, for example: archive.org/details/in.ernet.dli.2015.183486/mode/2up
@jeongpyolee717
@jeongpyolee717 4 жыл бұрын
@@protesilaos Thank you, Thank you, dear my Prot, I will leave more comments in your related topic video, that is in kzbin.info/www/bejne/p4XRlJZooa5phas [ Vlog: Emacs mindset and Unix philosophy ] because that is good place to my quest. Integrity and Unix philosophy
@protesilaos
@protesilaos 4 жыл бұрын
@Jeongpyo Lee Thanks! I replied there.
@amaxamon
@amaxamon 4 жыл бұрын
Thank you for making this channel! I've made more progress since finding your channel than in the months before!
@protesilaos
@protesilaos 4 жыл бұрын
You are welcome!
@sriharshabhat1805
@sriharshabhat1805 4 жыл бұрын
This is the great channel to educate myself about Emacs, since lock down I have been watching prot videos my practical Emacs skill is really increasing. Thanks
@protesilaos
@protesilaos 4 жыл бұрын
@sriharsha bhat Thank you! As for the events surrounding the pandemic, I wish you "bon courage!", as the French would say.
@joaopedrodeamorimpaula8965
@joaopedrodeamorimpaula8965 4 жыл бұрын
for now i still use a shell with tmux alongside Emacs and i don't think that will ever change. that said, i might look into eshell for running commands on projects, like a continuous compilation buffer or use eshell as a "REPL" for compiled languages. your video gave me motivation for looking deeper and more carefully into eshell. thank you!
@joaopedrodeamorimpaula8965
@joaopedrodeamorimpaula8965 4 жыл бұрын
oh, quick question: are you back to using ivy? or is that icomplete with your configurations?
@protesilaos
@protesilaos 4 жыл бұрын
@João Pedro de Amorim Since you already start with tmux, eshell could indeed cover the niche of the REPL with whatever little piece of extra Elisp you may need for it. What really matters is to use the right tool for the job. With regard to Icomplete, this is what I am still using and am very happy with it. I have lots of little additions for it covering a broad range of cases (check my dotemacs for the specifics) while I also rely on some new packages like "icomplete-vertical' and "orderless". The latter is a super-powerful completion style for out-of-order matching of regular expressions (supports flex, initialisms, literal, regexp, etc.). Both packages are from the same author: github.com/oantolin/
@joaopedrodeamorimpaula8965
@joaopedrodeamorimpaula8965 4 жыл бұрын
@@protesilaos thank you! i will definitely check out your configuration for icomplete! when i started emacs i just installed a bunch of packages without really looking into the defaults, which i should have done, and now i am on the journey of replacing most of the packages for their default counterpart. emacs is like a book that never ends, there is always a new story to discover and be amazed at!
@protesilaos
@protesilaos 4 жыл бұрын
@João Pedro de Amorim Feel welcome to contact me via email if you have any questions, because I might miss the comments here (KZbin is not reliable with its notifications). My dotemacs consists, in large part, of configurations for built-in libraries. I find that they get the job done, though there obviously is room for improvement. For me this is an opportunity to learn some Elisp by trying to implement what I think is missing. You are right: there is always something new to learn and this experience itself is fascinating!
@dommynovvy7568
@dommynovvy7568 4 жыл бұрын
C-x C-j... how did I not know about that?!?!? Thanks again Prot! "This is very nice indeed"!
@protesilaos
@protesilaos 4 жыл бұрын
@dommy novvy You are welcome! dired-jump is one of my favourite commands.
@richardfrangie3518
@richardfrangie3518 Жыл бұрын
Hi, where are you from? I'm from Venezuela. I understood you very well. Other channels that talk about Emacs and are native speakers, it's very difficult for me to understand them but with you I did well, thanks bro.
@protesilaos
@protesilaos Жыл бұрын
I am from Greece. I have seen pictures of Venezuela. It is a very beautiful country!
@TheGrinDeg
@TheGrinDeg 4 жыл бұрын
Great video as always!
@protesilaos
@protesilaos 4 жыл бұрын
@GrinDeg Thanks for watching!
@Wool314
@Wool314 4 жыл бұрын
Informative and inspiring, I am grateful for this demo!
@protesilaos
@protesilaos 4 жыл бұрын
Thank you!
@xged.
@xged. 4 жыл бұрын
This is nice indeed
@protesilaos
@protesilaos 4 жыл бұрын
Indeed!
@romanrudakov8175
@romanrudakov8175 4 жыл бұрын
Is there a way to use while loop in eshell like in regular bash?
@protesilaos
@protesilaos 4 жыл бұрын
@Roman Rudakov No, not that I am aware of. As an alternative, you can write Elisp commands that can then be called directly from the Eshell prompt. For example `(defun my-eshell-fynction ...)' will let you run `my-eshell-function' even without the outer parentheses. If, however, you need Bash's methods but still want to configure things like I did here, then take a look at `M-x shell': this is standard Bash minus the terminal capabilities (so no tmux, vim, htop…). It is also implemented as a buffer and can be tweaked to do basically the same things I demonstrated here. But it cannot call Elisp functions directly (such as `dired'), which means that its integration with the rest of Emacs is not as good as with Eshell.
@joaopedrodeamorimpaula8965
@joaopedrodeamorimpaula8965 4 жыл бұрын
to add to prot's answer, there is also `M-x term` and `M-x ansi-term` (they are essentially the same thing) that differ from `M-x shell` because they are terminal emulators written in elisp, while `M-x shell` is a subshell running in `comint-mode`. for that reason, in the former it creates a subprocess running your and all pressed keys are sent directly to the subprocess, and the Emacs buffer is just a way to present the output; while in the latter, you have a bit better Emacs integration since it is a "child" major mode of `comint-mode` but some of the functionalities of your shell running in a "proper" terminal emulator might not work here, or have some issues. all three (and i guess you could throw `vterm` together with `term` and `ansi-term`, since it is also a terminal emulator) approaches have their advantages and disadvantages, it is up to each user to try each one and use whichever adapts better to its workflow.
@protesilaos
@protesilaos 4 жыл бұрын
@João Pedro de Amorim Thanks for this! Yes, I would also group vterm together with {ansi-,}term.
@ianpan0102
@ianpan0102 4 жыл бұрын
Hi Prot, an unrelated question here: Lately I've heard that straight.el can increase startup performance along with other goodies for us emacsers. Have you considered trying it out? I know that it integrates with use-package well too
@protesilaos
@protesilaos 4 жыл бұрын
@ianpan870102 Good point! Better startup speed is always nice to have, though I am mostly fascinated by all the other features, such as reproducibility, patching the source code, contributing upstream… I feel the built-in package manager leaves much to be desired. The only reason I have not converted to straight yet is the lack of time. I have been working on lots of other things… On another note, one may also be interested in foregoing all Emacs-specific package managers, opting instead for something like Guix. Though I understand this only scales well once you do the same for all OS-level packages, which is not as simple as changing something in Emacs.
@ezio934
@ezio934 4 жыл бұрын
Awesome content. Subbed! ^_^
@protesilaos
@protesilaos 4 жыл бұрын
@Ezio Thanks!
Emacs: introduction to MAGIT
26:33
Protesilaos Stavrou
Рет қаралды 10 М.
Emacs: Introduction to ORG-CAPTURE
28:53
Protesilaos Stavrou
Рет қаралды 19 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
Quando eu quero Sushi (sem desperdiçar) 🍣
00:26
Los Wagners
Рет қаралды 15 МЛН
Introduction to EShell
42:02
Howard Abrams
Рет қаралды 42 М.
Emacs: window rules and parameters (`display-buffer-alist' and extras)
18:57
The Different Shells Available In Emacs
17:21
DistroTube
Рет қаралды 27 М.
An Introduction to Emacs Lisp
59:50
thoughtbot
Рет қаралды 35 М.
Emacs: introduction to IBUFFER
13:36
Protesilaos Stavrou
Рет қаралды 7 М.
Beginner's Guide to the Bash Terminal
1:14:37
Joe Collins (EzeeLinux)
Рет қаралды 2,3 МЛН
Eshell Quality Improvements
15:36
Goparism
Рет қаралды 2,4 М.
Emacs: completion framework (Embark,Consult,Orderless,etc.)
46:58
Protesilaos Stavrou
Рет қаралды 16 М.
Emacs: Org todo and agenda basics
45:28
Protesilaos Stavrou
Рет қаралды 3,6 М.
Emacs: introduction to bookmarks
24:21
Protesilaos Stavrou
Рет қаралды 7 М.