I've been using Emacs and org for almost a year now and I've watched a lot of videos and tutorials. This is among the best ones around for this topic. Thank you a lot, I was looking forward to it.
As a Windows user (and programmer), I've never stopped for a while to appreciate how flexible and powerful Linux distros can be. I specially liked this video since I often find myself using cmd and PowerShell alot
thank you YOutube, thank you Sir. You ability to story-tell and the quality of your video/sound made viewing that video as enjoyable as watching a short movie. You Sir had me on the edge of my seat and I learnt a lot as well. You are my new reference in terms of emacs. I am just gonna go ahead and sub/like, I am sure the rest of your channel rocks. Again, thank you !
I'm glad you liked it! These days I mostly make videos of the presentations I give at the yearly SeaGL conference, but I hope to stop being lazy and to make more at other times of year too :)
This presentation is a very high quality presentation on literate Programming with org-mode and emacs. I had love to see your talk in that conference. Please post a link to the talk, if possible.
Fantastic video! Tonnes of content, reasonable length, entertaining and extremely well produced. I will definitely be adapting some of these methods for my own practice. Thank you!
I daily drive orgmode for agenda and simple lists, but still your video is border line witchcraft magic. (Take that as a compliment! ) Amazing to see in action!!
Killed it! Thing about Emacs and Org is there is always something better and new to learn. Especially from content published few years back, and just when you think there is nothing more to learn about these two....lol. Thanks
That's great, again! Is there any chance you could discuss a bit more around export/dispatch customisation? Ie, having this great document, we'd like probably to publish it on our server (ftp?) where some css-es already are present. Or, perhaps, we have our WordPress blog and we'd like to publish this technical document as a post? Or publish it in confluence? Many thanks in advance. K.
Read The Org: github.com/fniessen/org-html-themes Read The Docs: sphinx-rtd-theme.readthedocs.io/en/latest/installing.html (Need Sphinx which is a python module: www.sphinx-doc.org/en/master/usage/quickstart.html) Git from the Bits Up: ruclips.net/video/MYP56QJpDr4/видео.html
This video was very, very useful to me. I also hope to see more Emacs content in the future. I just have one tiny, pedantic comment: Org is not "a Markdown language." Markdown and org-mode's syntax are two unrelated markup languages that were invented independently around the same time (org-mode in 2003, Markdown in 2004).
Wow, I have been using emacs for years and apparently I still know nothing about it. Thank you very much, I have learned a lot. This video is actually worth to watch multiple times. You are really fast with Emacs. I know you have posted your .emacs files but I still got to ask. Are you still using classical Emacs bindings? Do you have any insights/opinion on how to become more efficient?
Yup, I do indeed use the classic Emacs bindings. One of the things that helps my efficiency is having a good programmable keyboard. I use a Kinesis Advantage 2, which has 6 thumb buttons. This allows me easy access to Control and Meta keys, which makes chording very easy.
Small quibble! Markdown HTML and Org are types of markup languages, not mark down languages. That could cause some confusion for people, especially beginners.
I'd like to, I don't have a ton of ideas for other videos though. One idea I did have though was to do one on common data structures in elisp. I still sometimes struggle with relatively simple stuff like association lists, and quoting, and I bet a lot of other people do too.
@@elspuddo I do find that using python for string and list manipulation on a daily basis causes me to/helps me to forget the elisp ways, so I'd certainly watch that...
Hi Mike, I am slowly following your tuto, I am now @13:50 and I was wondering if you could explain what the =file - = does. I looked at the file utility help page but I don't think it mentions the =file - = , thanks!
A lot of UNIX utilities that take a filename as an argument will accept a dash ("-") to mean "read from STDIN instead". That's why it says "/dev/stdin:" at the start of the output. Hope this helps!
@@elspuddo thank you ( I thought I had answered your kind explanation last year but I had not, sorry). This video is still a great reference for me, amazing job Mike
Ok I want to pick you brains on your video editing :) what did you use to create the sound of the keyboard (unless you actually recorded your keyboard, but somehow I doubt it), also could you tell me what you used to speed up the input at certain moments of the video? thank you forehand!
I recorded the on-screen portions of the video separately from the narration, but I did have my microphone active (and my breath held) while I did it, so it picked up the sounds of my keyboard. I later recorded the narration separately and then edited it into the video timeline.
@@elspuddo did you use something special to have the fast-typing effect, or did you simply sped it up with your editing software? (btw which sw do you use for video edition?). But yeah you have a very interesting delivery, I am subbing to your channel just in case you come back to making more videos :), and yesterday night for the first time I tried to use erc/irc as you mentionned in the comment that's where people can find you. I have yet to register my nick properly, I am very new to that, but for what it 's worth you opened one person's eyes to irc, so thank you for that as well:)
The fast-typing comes from my keyboard, a Kinesis Advantage 2, which has a macro record/playback capability. So when it's going fast, I'm hitting my macro playback key. I use ScreenFlow on macOS for all my screen capture and video editing. I may try out an all Linux workflow, as I'm interested in trying out Kdenlive. The #emacs channel on Freenode is pretty great, there are very knowledgeable people there!
Haha, I waded into the comments specifically to find anyone talking about the keyboard sound. I was pretty sure I recognized it just by the sound, and indeed I did… I have the Kinesis Advantage 2 as well. It's not just the click of the switches, but the difference in tone on the thumb pads, I think.
@9:58 Hi Mike, I followed along but when I try to echo the result of invoking the =hello= function (with "") I am not getting the proper result, I am only getting the string "". When within the code.inc file I can invoke the function hello and access the right message. Any idea? I tried to add the header-args ":noweb yes" but that did not help either. Cheers,
Check out the function "org-babel-lob-ingest" which tells org to add the function in that file to the "Library of Babel". If you look at my config, I have a function called "my-maybe-lob-ingest" which I run as an after-save-hook for Org mode. This makes it so when I save code.inc it automatically adds it to the LOB so you can call hello() from your main document. You'll notice @8:57 when I save it says "2 src blocks added to Library of Babel", that's my after-save-hook.
@@elspuddo gotcha, I will use the LOB from now on thank you. Yesterday I finally understood that I could also from and I was quite proud of myself haha, but yes LOB is easier. Thank you for the feedback. I have left issue on your github I was not sure which way you prefer using when giving feedback. Whichever way you prefer, cheers!
Hi Mike, I am trying to follow that tutorial, however my orgmode setup is different from yours and your results do not match what I get. Ex: @4:02 when you execute your codeblock within your results there is a nested begin_example, I don't have that. WHen you export in html your results get exported and not mine. Can you point me in the right direction? thank you
Hey, sorry for the confusion on this. In my Emacs configuration I have manipulated the "org-babel-default-header-args" to change the default header args supplied to every code block. You can manually get the same results as me by doing: #+BEGIN_SRC shell :results output verbatim replace echo "My current working directory is: $(dirs +0)" ls -l #+END_SRC Hope this helps!
@@elspuddo It's not working for me :) Right now I m only using fniessen set up file to export to html. I tried your code but it won't output the name of my current file (it does it in orgmode, but not on html). Same thing with the output the codeblock: it is not showing within the html page.
update: might be a bug, but in my case the only way to displaying the output of the block is to make sure there is at least a text character between the babel codeblock and the output. Weird:)
@@elspuddo I really want to follow along your instructional, do you see any pb with the code below? #+NAME: hashobject #+begin_src sh :exports both :results output verbatim replace echo -n '' | git hash-object --stdin -w #+end_src #+RESULTS: hashobject : 7435a4d4bbd4c88971f2b1929491abd8ca9da3bb ------------------ I don't understand why I am not able to export to html, am I missing something out?
@@elspuddo Oh Actually you can get it from elpa archive. You can find it using M-x list-packages. All I needed was the name thanks! I am not new to emacs but new to org mode, may I contact you if I have more questions?
@@izz6190 If you look carefully, you can spot my email address in the bottom left corner in parts of the video. I'm also on #emacs on Freenode, fire up an IRC client and join us!
That's literate programming as sweet as it can be in a just 20mins demo. Awesome tutorial Sir, from plot to execution you tick all the boxes!
"...and I hope you learned something." ... Learned Something?! You just changed my life. But that's ok :-)
This is easily the best video on literate programming with Org Mode on the internet.
@14:41 "Looks good though"
Quite the understatement!
I've been using Emacs and org for almost a year now and I've watched a lot of videos and tutorials. This is among the best ones around for this topic. Thank you a lot, I was looking forward to it.
🙌 🙌 👏 never have i found such a compelling reason for learning emacs! 🙏
As a Windows user (and programmer), I've never stopped for a while to appreciate how flexible and powerful Linux distros can be. I specially liked this video since I often find myself using cmd and PowerShell alot
extremely well prepared video tutorial - amazing job!
I find the sound of your keyboard so very satisfying
I've been meaning to try org-mode for a while and your video was the last straw. :) Thank you! Please keep it up.
thank you YOutube, thank you Sir. You ability to story-tell and the quality of your video/sound made viewing that video as enjoyable as watching a short movie. You Sir had me on the edge of my seat and I learnt a lot as well. You are my new reference in terms of emacs. I am just gonna go ahead and sub/like, I am sure the rest of your channel rocks. Again, thank you !
I'm glad you liked it! These days I mostly make videos of the presentations I give at the yearly SeaGL conference, but I hope to stop being lazy and to make more at other times of year too :)
This presentation is a very high quality presentation on literate
Programming with org-mode and emacs. I had love to see your talk in that conference. Please post a link to the talk, if possible.
Fantastic video! Tonnes of content, reasonable length, entertaining and extremely well produced. I will definitely be adapting some of these methods for my own practice. Thank you!
I daily drive orgmode for agenda and simple lists, but still your video is border line witchcraft magic. (Take that as a compliment! ) Amazing to see in action!!
Killed it! Thing about Emacs and Org is there is always something better and new to learn.
Especially from content published few years back, and just when you think there is nothing more to learn about these two....lol.
Thanks
This is fantastic! Thank you for sharing! Been using org mode for four years, realized that I still have much to learn!
Outstanding tutorial. Really top-quality stuff. Thank you for sharing.
This is awesome, and very well made video. Inspired me to start learning emacs.
Thank you very much for the super clear video and accompanying documents. Inspirational and educational.
Really nicely made tutorial and demonstration of the possibilities. Thank you!
Really nice presentation. Good work!
brilliant, more videos like this need to be done! Amazing work!
Very well thought out and executed. You, sir, have an awesome talent.
Dude, awesome job. Keep the good stuff coming...
That's great, again! Is there any chance you could discuss a bit more around export/dispatch customisation? Ie, having this great document, we'd like probably to publish it on our server (ftp?) where some css-es already are present. Or, perhaps, we have our WordPress blog and we'd like to publish this technical document as a post? Or publish it in confluence? Many thanks in advance. K.
Read The Org: github.com/fniessen/org-html-themes
Read The Docs: sphinx-rtd-theme.readthedocs.io/en/latest/installing.html (Need Sphinx which is a python module: www.sphinx-doc.org/en/master/usage/quickstart.html)
Git from the Bits Up: ruclips.net/video/MYP56QJpDr4/видео.html
Very well done. Thank you for this excellent and approachable introduction to org-mode.
This video was very, very useful to me. I also hope to see more Emacs content in the future. I just have one tiny, pedantic comment: Org is not "a Markdown language." Markdown and org-mode's syntax are two unrelated markup languages that were invented independently around the same time (org-mode in 2003, Markdown in 2004).
This demo is incredible!
Thank you for excellent tutorial!
Many thanks for a great working example.
use let instead of setq in the my-publish function that would affect only locally
Very well done! Beautiful presentation!
00:39 #+title: - in-buffer setting
01:13 what is org mode?
01:44 formatting syntax
02:18 org-export-dispatch (C-c C-e) as html
02:28 #+setupfile: - in-buffer setting
03:29 what is org babel?
03:35 #+begin_src and #+end_src - org babel code block
03:52 org-ctrl-c-ctrl-c (C-c C-c) execute org babel code block
04:28 :dir - code block header argument
04:48 #+property: - in-buffer setting; sets file-level header arguments
05:07 #+include: - in-buffer setting
05:23 # -- mode: -- - local variables in files
05:30 #+name: - code block directive
05:38 :exports - code block header argument
06:04 #+call: - in-buffer setting
06:22 why redirect stderr to stdout?
07:15 :results output - code block header argument
08:59 call_hello() - inline call to code block (prefix with "call_" and append the #+name: of the code block)
09:20 call_hello[:results raw]() - header arguments in inline call ()
09:41 :noweb - code block header argument
10:36 :var - code block header argument
11:09 call_short_hash(line=hashobject) - inline call with argument
13:42 :noweb - call with argument
15:49 terminal vs gui - font size
16:35 org-edit-special (C-c ')
16:54 company-mode - emacs third-party package
17:28 :results - code block header argument
18:52 custom org publish function
21:06 org-publish
22:20 final thoughts on confluence editor
Bro..just do this more often. U rock. V need more heroes like U to show'em vmers what Emacs can do that they cant!!!
Wow, I have been using emacs for years and apparently I still know nothing about it. Thank you very much, I have learned a lot. This video is actually worth to watch multiple times. You are really fast with Emacs. I know you have posted your .emacs files but I still got to ask. Are you still using classical Emacs bindings? Do you have any insights/opinion on how to become more efficient?
Yup, I do indeed use the classic Emacs bindings. One of the things that helps my efficiency is having a good programmable keyboard. I use a Kinesis Advantage 2, which has 6 thumb buttons. This allows me easy access to Control and Meta keys, which makes chording very easy.
Great video! Wondering how you got the little circles as your section headers. I have always had asterisks. I have never seen those little circles.
That's the org-bullets-mode. It can be found here: github.com/sabof/org-bullets
Small quibble! Markdown HTML and Org are types of markup languages, not mark down languages. That could cause some confusion for people, especially beginners.
That's a good point, I often butcher the whole mark{down,up} distinction.
this is a well made video. Can we expect more emacs content in the future?
I'd like to, I don't have a ton of ideas for other videos though. One idea I did have though was to do one on common data structures in elisp. I still sometimes struggle with relatively simple stuff like association lists, and quoting, and I bet a lot of other people do too.
@@elspuddo I do find that using python for string and list manipulation on a daily basis causes me to/helps me to forget the elisp ways, so I'd certainly watch that...
@@elspuddo Maybe something about using snippets and templates with org-mode?
very important: change org from value mode to scripting mode (7:38)!
I can't find out how and where to change that mode from default. how do you change that?
Check out the variable "org-babel-default-header-args". You can set the ":results" header to "output" there.
@@elspuddo Thanks you for Help!!! Much Love! & Cheer! ruclips.net/video/i-VBSMixrns/видео.html Good day for you!
Would have been helpful if you would have said which command you used to generate the HTML file @ 2:24.
The command is
org-export-dispatch (C-c C-e)
Great video. Can you link to the source of the git mechanics you used? It’s mentioned in the vid, but I didn’t catch the time.
Git from the Bits Up: ruclips.net/video/MYP56QJpDr4/видео.html
(also in the pinned comment, I'll add it to the end of the video's description too)
Very good
Hi Mike, I am slowly following your tuto, I am now @13:50 and I was wondering if you could explain what the =file - = does. I looked at the file utility help page but I don't think it mentions the =file - = , thanks!
A lot of UNIX utilities that take a filename as an argument will accept a dash ("-") to mean "read from STDIN instead". That's why it says "/dev/stdin:" at the start of the output. Hope this helps!
@@elspuddo thank you ( I thought I had answered your kind explanation last year but I had not, sorry). This video is still a great reference for me, amazing job Mike
Awesome video!
Hey! Nice video, can you say how to export to Confluence?
I learned things today.
Ok I want to pick you brains on your video editing :) what did you use to create the sound of the keyboard (unless you actually recorded your keyboard, but somehow I doubt it), also could you tell me what you used to speed up the input at certain moments of the video? thank you forehand!
I recorded the on-screen portions of the video separately from the narration, but I did have my microphone active (and my breath held) while I did it, so it picked up the sounds of my keyboard. I later recorded the narration separately and then edited it into the video timeline.
@@elspuddo did you use something special to have the fast-typing effect, or did you simply sped it up with your editing software? (btw which sw do you use for video edition?). But yeah you have a very interesting delivery, I am subbing to your channel just in case you come back to making more videos :), and yesterday night for the first time I tried to use erc/irc as you mentionned in the comment that's where people can find you. I have yet to register my nick properly, I am very new to that, but for what it 's worth you opened one person's eyes to irc, so thank you for that as well:)
The fast-typing comes from my keyboard, a Kinesis Advantage 2, which has a macro record/playback capability. So when it's going fast, I'm hitting my macro playback key. I use ScreenFlow on macOS for all my screen capture and video editing. I may try out an all Linux workflow, as I'm interested in trying out Kdenlive. The #emacs channel on Freenode is pretty great, there are very knowledgeable people there!
Haha, I waded into the comments specifically to find anyone talking about the keyboard sound. I was pretty sure I recognized it just by the sound, and indeed I did… I have the Kinesis Advantage 2 as well. It's not just the click of the switches, but the difference in tone on the thumb pads, I think.
@@elspuddo belated thank you for the recording tip, I managed to not notice it until today and really appreciate the information. :pray:
@9:58 Hi Mike, I followed along but when I try to echo the result of invoking the =hello= function (with "") I am not getting the proper result, I am only getting the string "". When within the code.inc file I can invoke the function hello and access the right message. Any idea? I tried to add the header-args ":noweb yes" but that did not help either. Cheers,
Check out the function "org-babel-lob-ingest" which tells org to add the function in that file to the "Library of Babel". If you look at my config, I have a function called "my-maybe-lob-ingest" which I run as an after-save-hook for Org mode. This makes it so when I save code.inc it automatically adds it to the LOB so you can call hello() from your main document. You'll notice @8:57 when I save it says "2 src blocks added to Library of Babel", that's my after-save-hook.
@@elspuddo gotcha, I will use the LOB from now on thank you. Yesterday I finally understood that I could also from and I was quite proud of myself haha, but yes LOB is easier. Thank you for the feedback. I have left issue on your github I was not sure which way you prefer using when giving feedback. Whichever way you prefer, cheers!
@@MMABeijing Very cool, I didn't know you could do that!
Hi Mike, I am trying to follow that tutorial, however my orgmode setup is different from yours and your results do not match what I get. Ex: @4:02 when you execute your codeblock within your results there is a nested begin_example, I don't have that. WHen you export in html your results get exported and not mine. Can you point me in the right direction? thank you
Hey, sorry for the confusion on this. In my Emacs configuration I have manipulated the "org-babel-default-header-args" to change the default header args supplied to every code block. You can manually get the same results as me by doing:
#+BEGIN_SRC shell :results output verbatim replace
echo "My current working directory is: $(dirs +0)"
ls -l
#+END_SRC
Hope this helps!
@@elspuddo It's not working for me :) Right now I m only using fniessen set up file to export to html. I tried your code but it won't output the name of my current file (it does it in orgmode, but not on html). Same thing with the output the codeblock: it is not showing within the html page.
update: might be a bug, but in my case the only way to displaying the output of the block is to make sure there is at least a text character between the babel codeblock and the output. Weird:)
@@elspuddo I really want to follow along your instructional, do you see any pb with the code below?
#+NAME: hashobject
#+begin_src sh :exports both :results output verbatim replace
echo -n '' | git hash-object --stdin -w
#+end_src
#+RESULTS: hashobject
: 7435a4d4bbd4c88971f2b1929491abd8ca9da3bb
------------------
I don't understand why I am not able to export to html, am I missing something out?
that theme are you using? In config file I have found this (load-theme 'modus-vivendi) but it's not that theme.
That's Zenburn with a darkened background.
How did you get the asterisk to appear as those orange bubbles?
The org-bullets package does that.
github.com/sabof/org-bullets
@@elspuddo Oh Actually you can get it from elpa archive. You can find it using M-x list-packages. All I needed was the name thanks! I am not new to emacs but new to org mode, may I contact you if I have more questions?
@@izz6190 If you look carefully, you can spot my email address in the bottom left corner in parts of the video. I'm also on #emacs on Freenode, fire up an IRC client and join us!
Yoooooo this is great
cool
My brain melted. Not very good brain