emacs-is-cool.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5. <head>
  6. <!-- 2021-11-05 Fri 11:51 -->
  7. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1" />
  9. <title>Emacs is the coolest editor!</title>
  10. <meta name="generator" content="Org mode" />
  11. <meta name="description" content="Emacs is cool B)"
  12. />
  13. <style type="text/css">
  14. <!--/*--><![CDATA[/*><!--*/
  15. .title { text-align: center;
  16. margin-bottom: .2em; }
  17. .subtitle { text-align: center;
  18. font-size: medium;
  19. font-weight: bold;
  20. margin-top:0; }
  21. .todo { font-family: monospace; color: red; }
  22. .done { font-family: monospace; color: green; }
  23. .priority { font-family: monospace; color: orange; }
  24. .tag { background-color: #eee; font-family: monospace;
  25. padding: 2px; font-size: 80%; font-weight: normal; }
  26. .timestamp { color: #bebebe; }
  27. .timestamp-kwd { color: #5f9ea0; }
  28. .org-right { margin-left: auto; margin-right: 0px; text-align: right; }
  29. .org-left { margin-left: 0px; margin-right: auto; text-align: left; }
  30. .org-center { margin-left: auto; margin-right: auto; text-align: center; }
  31. .underline { text-decoration: underline; }
  32. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  33. p.verse { margin-left: 3%; }
  34. pre {
  35. border: 1px solid #ccc;
  36. box-shadow: 3px 3px 3px #eee;
  37. padding: 8pt;
  38. font-family: monospace;
  39. overflow: auto;
  40. margin: 1.2em;
  41. }
  42. pre.src {
  43. position: relative;
  44. overflow: visible;
  45. padding-top: 1.2em;
  46. }
  47. pre.src:before {
  48. display: none;
  49. position: absolute;
  50. background-color: white;
  51. top: -10px;
  52. right: 10px;
  53. padding: 3px;
  54. border: 1px solid black;
  55. }
  56. pre.src:hover:before { display: inline;}
  57. /* Languages per Org manual */
  58. pre.src-asymptote:before { content: 'Asymptote'; }
  59. pre.src-awk:before { content: 'Awk'; }
  60. pre.src-C:before { content: 'C'; }
  61. /* pre.src-C++ doesn't work in CSS */
  62. pre.src-clojure:before { content: 'Clojure'; }
  63. pre.src-css:before { content: 'CSS'; }
  64. pre.src-D:before { content: 'D'; }
  65. pre.src-ditaa:before { content: 'ditaa'; }
  66. pre.src-dot:before { content: 'Graphviz'; }
  67. pre.src-calc:before { content: 'Emacs Calc'; }
  68. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  69. pre.src-fortran:before { content: 'Fortran'; }
  70. pre.src-gnuplot:before { content: 'gnuplot'; }
  71. pre.src-haskell:before { content: 'Haskell'; }
  72. pre.src-hledger:before { content: 'hledger'; }
  73. pre.src-java:before { content: 'Java'; }
  74. pre.src-js:before { content: 'Javascript'; }
  75. pre.src-latex:before { content: 'LaTeX'; }
  76. pre.src-ledger:before { content: 'Ledger'; }
  77. pre.src-lisp:before { content: 'Lisp'; }
  78. pre.src-lilypond:before { content: 'Lilypond'; }
  79. pre.src-lua:before { content: 'Lua'; }
  80. pre.src-matlab:before { content: 'MATLAB'; }
  81. pre.src-mscgen:before { content: 'Mscgen'; }
  82. pre.src-ocaml:before { content: 'Objective Caml'; }
  83. pre.src-octave:before { content: 'Octave'; }
  84. pre.src-org:before { content: 'Org mode'; }
  85. pre.src-oz:before { content: 'OZ'; }
  86. pre.src-plantuml:before { content: 'Plantuml'; }
  87. pre.src-processing:before { content: 'Processing.js'; }
  88. pre.src-python:before { content: 'Python'; }
  89. pre.src-R:before { content: 'R'; }
  90. pre.src-ruby:before { content: 'Ruby'; }
  91. pre.src-sass:before { content: 'Sass'; }
  92. pre.src-scheme:before { content: 'Scheme'; }
  93. pre.src-screen:before { content: 'Gnu Screen'; }
  94. pre.src-sed:before { content: 'Sed'; }
  95. pre.src-sh:before { content: 'shell'; }
  96. pre.src-sql:before { content: 'SQL'; }
  97. pre.src-sqlite:before { content: 'SQLite'; }
  98. /* additional languages in org.el's org-babel-load-languages alist */
  99. pre.src-forth:before { content: 'Forth'; }
  100. pre.src-io:before { content: 'IO'; }
  101. pre.src-J:before { content: 'J'; }
  102. pre.src-makefile:before { content: 'Makefile'; }
  103. pre.src-maxima:before { content: 'Maxima'; }
  104. pre.src-perl:before { content: 'Perl'; }
  105. pre.src-picolisp:before { content: 'Pico Lisp'; }
  106. pre.src-scala:before { content: 'Scala'; }
  107. pre.src-shell:before { content: 'Shell Script'; }
  108. pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
  109. /* additional language identifiers per "defun org-babel-execute"
  110. in ob-*.el */
  111. pre.src-cpp:before { content: 'C++'; }
  112. pre.src-abc:before { content: 'ABC'; }
  113. pre.src-coq:before { content: 'Coq'; }
  114. pre.src-groovy:before { content: 'Groovy'; }
  115. /* additional language identifiers from org-babel-shell-names in
  116. ob-shell.el: ob-shell is the only babel language using a lambda to put
  117. the execution function name together. */
  118. pre.src-bash:before { content: 'bash'; }
  119. pre.src-csh:before { content: 'csh'; }
  120. pre.src-ash:before { content: 'ash'; }
  121. pre.src-dash:before { content: 'dash'; }
  122. pre.src-ksh:before { content: 'ksh'; }
  123. pre.src-mksh:before { content: 'mksh'; }
  124. pre.src-posh:before { content: 'posh'; }
  125. /* Additional Emacs modes also supported by the LaTeX listings package */
  126. pre.src-ada:before { content: 'Ada'; }
  127. pre.src-asm:before { content: 'Assembler'; }
  128. pre.src-caml:before { content: 'Caml'; }
  129. pre.src-delphi:before { content: 'Delphi'; }
  130. pre.src-html:before { content: 'HTML'; }
  131. pre.src-idl:before { content: 'IDL'; }
  132. pre.src-mercury:before { content: 'Mercury'; }
  133. pre.src-metapost:before { content: 'MetaPost'; }
  134. pre.src-modula-2:before { content: 'Modula-2'; }
  135. pre.src-pascal:before { content: 'Pascal'; }
  136. pre.src-ps:before { content: 'PostScript'; }
  137. pre.src-prolog:before { content: 'Prolog'; }
  138. pre.src-simula:before { content: 'Simula'; }
  139. pre.src-tcl:before { content: 'tcl'; }
  140. pre.src-tex:before { content: 'TeX'; }
  141. pre.src-plain-tex:before { content: 'Plain TeX'; }
  142. pre.src-verilog:before { content: 'Verilog'; }
  143. pre.src-vhdl:before { content: 'VHDL'; }
  144. pre.src-xml:before { content: 'XML'; }
  145. pre.src-nxml:before { content: 'XML'; }
  146. /* add a generic configuration mode; LaTeX export needs an additional
  147. (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
  148. pre.src-conf:before { content: 'Configuration File'; }
  149. table { border-collapse:collapse; }
  150. caption.t-above { caption-side: top; }
  151. caption.t-bottom { caption-side: bottom; }
  152. td, th { vertical-align:top; }
  153. th.org-right { text-align: center; }
  154. th.org-left { text-align: center; }
  155. th.org-center { text-align: center; }
  156. td.org-right { text-align: right; }
  157. td.org-left { text-align: left; }
  158. td.org-center { text-align: center; }
  159. dt { font-weight: bold; }
  160. .footpara { display: inline; }
  161. .footdef { margin-bottom: 1em; }
  162. .figure { padding: 1em; }
  163. .figure p { text-align: center; }
  164. .equation-container {
  165. display: table;
  166. text-align: center;
  167. width: 100%;
  168. }
  169. .equation {
  170. vertical-align: middle;
  171. }
  172. .equation-label {
  173. display: table-cell;
  174. text-align: right;
  175. vertical-align: middle;
  176. }
  177. .inlinetask {
  178. padding: 10px;
  179. border: 2px solid gray;
  180. margin: 10px;
  181. background: #ffffcc;
  182. }
  183. #org-div-home-and-up
  184. { text-align: right; font-size: 70%; white-space: nowrap; }
  185. textarea { overflow-x: auto; }
  186. .linenr { font-size: smaller }
  187. .code-highlighted { background-color: #ffff00; }
  188. .org-info-js_info-navigation { border-style: none; }
  189. #org-info-js_console-label
  190. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  191. .org-info-js_search-highlight
  192. { background-color: #ffff00; color: #000000; font-weight: bold; }
  193. .org-svg { width: 90%; }
  194. /*]]>*/-->
  195. </style>
  196. <script type="text/javascript">
  197. /*
  198. @licstart The following is the entire license notice for the
  199. JavaScript code in this tag.
  200. Copyright (C) 2012-2020 Free Software Foundation, Inc.
  201. The JavaScript code in this tag is free software: you can
  202. redistribute it and/or modify it under the terms of the GNU
  203. General Public License (GNU GPL) as published by the Free Software
  204. Foundation, either version 3 of the License, or (at your option)
  205. any later version. The code is distributed WITHOUT ANY WARRANTY;
  206. without even the implied warranty of MERCHANTABILITY or FITNESS
  207. FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
  208. As additional permission under GNU GPL version 3 section 7, you
  209. may distribute non-source (e.g., minimized or compacted) forms of
  210. that code without the copy of the GNU GPL normally required by
  211. section 4, provided you include this license notice and a URL
  212. through which recipients can access the Corresponding Source.
  213. @licend The above is the entire license notice
  214. for the JavaScript code in this tag.
  215. */
  216. <!--/*--><![CDATA[/*><!--*/
  217. function CodeHighlightOn(elem, id)
  218. {
  219. var target = document.getElementById(id);
  220. if(null != target) {
  221. elem.cacheClassElem = elem.className;
  222. elem.cacheClassTarget = target.className;
  223. target.className = "code-highlighted";
  224. elem.className = "code-highlighted";
  225. }
  226. }
  227. function CodeHighlightOff(elem, id)
  228. {
  229. var target = document.getElementById(id);
  230. if(elem.cacheClassElem)
  231. elem.className = elem.cacheClassElem;
  232. if(elem.cacheClassTarget)
  233. target.className = elem.cacheClassTarget;
  234. }
  235. /*]]>*///-->
  236. </script>
  237. </head>
  238. <body>
  239. <div id="content">
  240. <h1 class="title">Emacs is the coolest editor!</h1>
  241. <div id="table-of-contents">
  242. <h2>Table of Contents</h2>
  243. <div id="text-table-of-contents">
  244. <ul>
  245. <li><a href="#org97ed475">1. What is emacs?</a></li>
  246. <li><a href="#orga1620aa">2. Features?</a></li>
  247. <li><a href="#org6fc0b7b">3. My thoughts on Emacs's featuers?</a></li>
  248. <li><a href="#org680aa7a">4. Org mode</a></li>
  249. <li><a href="#org63f498c">5. Magit?</a></li>
  250. <li><a href="#org7ee038a">6. Elfeed</a></li>
  251. <li><a href="#org7f186f0">7. Conclusion</a></li>
  252. <li><a href="#orga075624">8. Bye Bye</a></li>
  253. </ul>
  254. </div>
  255. </div>
  256. <div id="outline-container-org97ed475" class="outline-2">
  257. <h2 id="org97ed475"><span class="section-number-2">1</span> What is emacs?</h2>
  258. <div class="outline-text-2" id="text-1">
  259. <p>
  260. I have used emacs quite a bit. I have talked about what it is many times before. If your reading this article you already have a general idea of what emacs is. For me emacs has been a meant to be love meant to be from the very beggining of me trying it. I failed obviously, emacs without you having some knowledge about buffers, tabs, spell check and all the other cool editor things has dificult I think others can agree on. My knowledge of vim when I first started using emacs was very low. Especially if your dropped into this big ugly emacs start up message that makes you think why are the emacs desighners so behind on software modernization! Even if your a cultured vimmer emacs is very unsettling with it's ugly start up screen and old style. So you might go to some tutorial on the internet you will most likely probably find something that makes you waste time configuring, get a error and crawl back to vim. So a tutorial on how to set up emacs is a tutorial for another day. My advice is just start adding stuff when you feel you need it. A quick duckduckgo search isn't that hard for what you want to figure out how to do in emacs. Just today I actually got someone setup with with emacs as a former neovim user. As I slowly added features to his config ( He still isn't using them all.) He is seeing features and oppurtunities open.
  261. </p>
  262. </div>
  263. </div>
  264. <div id="outline-container-orga1620aa" class="outline-2">
  265. <h2 id="orga1620aa"><span class="section-number-2">2</span> Features?</h2>
  266. <div class="outline-text-2" id="text-2">
  267. <p>
  268. Emacs by big fishes like DT, yeah only DT there aren't many big fishes like him that use emacs. He advertises 3 features:
  269. </p>
  270. <ul class="org-ul">
  271. <li>ORG
  272. <ul class="org-ul">
  273. <li>All of it's cool features</li>
  274. </ul></li>
  275. <li>Magit</li>
  276. <li>Elfeed</li>
  277. </ul>
  278. </div>
  279. </div>
  280. <div id="outline-container-org6fc0b7b" class="outline-2">
  281. <h2 id="org6fc0b7b"><span class="section-number-2">3</span> My thoughts on Emacs's featuers?</h2>
  282. <div class="outline-text-2" id="text-3">
  283. <p>
  284. Well since emacs is presented as a <b>feature set</b> by DT. I can not describe it that way. I view emacs as more of a toolbox of great premade tools. These tools are absolutely amazing for trying to make things just <i>work</i> in exact way you want them. Vim on the other hand has a tool box with some cool tools but for doing obscure things that for some reason you just got to do get the extra ounce of efficiency. Vim gets delivered with broken tools that the community has been able to to take vimscript (Vim's programming language) and make these features usable through plugins which once again is litterally once again taking one of vim's broken tools that people really dislike. It's plugin system and created a interface with vimscript for it. Just this is mind boggling dumb. Bram doesn't really care for plugins probably but clearly the community does. Emacs is where you build the environment of tools and these tools come with more tools. Now on to the features:
  285. </p>
  286. </div>
  287. </div>
  288. <div id="outline-container-org680aa7a" class="outline-2">
  289. <h2 id="org680aa7a"><span class="section-number-2">4</span> Org mode</h2>
  290. <div class="outline-text-2" id="text-4">
  291. <p>
  292. Org mode is what emacs likes to advertise itself on. They are not wrong org mode is very cool. A quick note is that if you have markdown documents or are writing new ones it is easy to convert them back and fourth with emacs's pandoc looking wrapper. So converting to org mode is easy. You no longer have to deal with markdown's syntax just move to ORG! Org isn't only for writing documents or taking notes like markdown can. Org is for plenty of things I haven't scratched the surface of. I have been able to have excellent task management with it <b>TODO</b> and <b>DONE</b> marks that you can archived very easily with <b>C-c</b> + <b>C-x</b> + <b>C-s</b>. It also when put into this archive file tells you when it was completed. This is much better then a traditional TODO list where once you've done it you delete it and don't see it again. Though people are able to fairly easily solve this problem with org roam. For me ORG mode is excellent. I don't need any other writing format for these blogs my notes for school and task sheets. I also get excellent in-line images when I need them for better note taking. I also need to convert my math sheet which done in markdown to org so I can get in-line previews of equations without having to re export. I basically don't even have to export to pdf if I wanted to. For me ORG mode is deffinitly nice feature. I would recommend trying it even if your a vim user because there is some plug-in for it. Org is a great!
  293. </p>
  294. </div>
  295. </div>
  296. <div id="outline-container-org63f498c" class="outline-2">
  297. <h2 id="org63f498c"><span class="section-number-2">5</span> Magit?</h2>
  298. <div class="outline-text-2" id="text-5">
  299. <p>
  300. Uh, I don't use Magit very much since for making my scripts LIBRE I don't need to use anything but codeberg's website. Also at less your dealing with really complicated projects emacs has built in git commands and it's really only 3 commands on the command line for basic git usage.
  301. </p>
  302. </div>
  303. </div>
  304. <div id="outline-container-org7ee038a" class="outline-2">
  305. <h2 id="org7ee038a"><span class="section-number-2">6</span> Elfeed</h2>
  306. <div class="outline-text-2" id="text-6">
  307. <p>
  308. This probably isn't a selling point that a lot of people know about. I do because of DT I think and it's wonderful. I did a video on it so no need for me to talk about it here:
  309. </p>
  310. <p>
  311. <a href="https://librarian.bcow.xyz/@trueauracoral:a/emacs-elfeed-tutorial:7">https://librarian.bcow.xyz/@trueauracoral:a/emacs-elfeed-tutorial:7</a>
  312. </p>
  313. </div>
  314. </div>
  315. <div id="outline-container-org7f186f0" class="outline-2">
  316. <h2 id="org7f186f0"><span class="section-number-2">7</span> Conclusion</h2>
  317. <div class="outline-text-2" id="text-7">
  318. <p>
  319. Emacs isn't for everybody but for me it is awesome. I am learning a lot. Just today I figured out two things: Tab commands and turning on flyspell let me to see spelling errors without manually going to the word. This was a vim feature I had but I randomly discovered it in emacs.
  320. </p>
  321. </div>
  322. </div>
  323. <div id="outline-container-orga075624" class="outline-2">
  324. <h2 id="orga075624"><span class="section-number-2">8</span> Bye Bye</h2>
  325. </div>
  326. </div>
  327. <div id="postamble" class="status">
  328. <p class="date">Created: 2021-11-05 Fri 11:51</p>
  329. <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
  330. </div>
  331. </body>
  332. </html>