Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-LATEX "2019emacsconf.tex") % (defun c () (interactive) (find-LATEXsh "lualatex -record 2019emacsconf.tex" :end)) % (defun d () (interactive) (find-pdf-page "~/LATEX/2019emacsconf.pdf")) % (defun d () (interactive) (find-pdftools-page "~/LATEX/2019emacsconf.pdf")) % (defun e () (interactive) (find-LATEX "2019emacsconf.tex")) % (defun u () (interactive) (find-latex-upload-links "2019emacsconf")) % (setq revert-without-query '("pdf$")) % (find-pdf-page "~/LATEX/2019emacsconf.pdf") % (find-sh0 "cp -v ~/LATEX/2019emacsconf.pdf /tmp/") % (find-sh0 "cp -v ~/LATEX/2019emacsconf.pdf /tmp/pen/") % file:///home/edrx/LATEX/2019emacsconf.pdf % file:///tmp/2019emacsconf.pdf % file:///tmp/pen/2019emacsconf.pdf % http://angg.twu.net/LATEX/2019emacsconf.pdf % (find-LATEX "2019.mk") % (find-fline "~/eev-videos/emacsconf-audios/") % «.defs» (to "defs") % «.co» (to "co") % «.title-page» (to "title-page") % «.prehistory» (to "prehistory") % «.prehistory-2» (to "prehistory-2") % «.prehistory-3» (to "prehistory-3") % «.prehistory-4» (to "prehistory-4") % «.prehistory-5» (to "prehistory-5") % «.prehistory-6» (to "prehistory-6") % «.prehistory-7» (to "prehistory-7") % «.prehistory-8» (to "prehistory-8") % «.prehistory-9» (to "prehistory-9") % «.eev-elpa» (to "eev-elpa") % «.eev-elpa-2» (to "eev-elpa-2") % «.M-j» (to "M-j") % «.demo» (to "demo") % «.links» (to "links") \documentclass[oneside]{book} \usepackage[colorlinks,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref") \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{pict2e} \usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor") \usepackage{colorweb} % (find-es "tex" "colorweb") %\usepackage{tikz} % % (find-dn6 "preamble6.lua" "preamble0") %\usepackage{proof} % For derivation trees ("%:" lines) %\input diagxy % For 2D diagrams ("%D" lines) %\xyoption{curve} % For the ".curve=" feature in 2D diagrams % \usepackage{edrx15} % (find-LATEX "edrx15.sty") \input edrxaccents.tex % (find-LATEX "edrxaccents.tex") \input edrxchars.tex % (find-LATEX "edrxchars.tex") \input edrxheadfoot.tex % (find-LATEX "edrxheadfoot.tex") \input edrxgac2.tex % (find-LATEX "edrxgac2.tex") % % (find-es "tex" "geometry") \usepackage[paperwidth=11.5cm, paperheight=9cm, %total={6.5in,4in}, %textwidth=4in, paperwidth=4.5in, %textheight=5in, paperheight=4.5in, %a4paper, top=1.5cm, bottom=.5cm, left=1cm, right=1cm, includefoot ]{geometry} % \begin{document} %\catcode`\^^J=10 %\directlua{dofile "dednat6load.lua"} % (find-LATEX "dednat6load.lua") % %L dofile "edrxtikz.lua" -- (find-LATEX "edrxtikz.lua") % %L dofile "edrxpict.lua" -- (find-LATEX "edrxpict.lua") % \pu % «defs» (to ".defs") % (find-LATEX "edrx15.sty" "colors-2019") \long\def\ColorRed #1{{\color{Red1}#1}} \long\def\ColorViolet#1{{\color{MagentaVioletLight}#1}} \long\def\ColorViolet#1{{\color{Violet!50!black}#1}} \long\def\ColorGreen #1{{\color{SpringDarkHard}#1}} \long\def\ColorGreen #1{{\color{SpringGreenDark}#1}} \long\def\ColorGreen #1{{\color{SpringGreen4}#1}} \long\def\ColorGray #1{{\color{GrayLight}#1}} \long\def\ColorGray #1{{\color{black!30!white}#1}} % pos-spec colors % (find-es "tex" "xcolor") % (find-xcolorpage 17 "2.4 Predefined colors") % (find-xcolortext 17 "2.4 Predefined colors") \def\Cnum#1{{\color{magenta}#1}} \def\Cnum#1{{\color{Red1}#1}} \def\Cnum#1{{\color{violet}#1}} \def\Cnum#1{{\color{orange}#1}} \def\Cstr#1{{\color{violet}#1}} \def\Cstr#1{{\color{Red1}#1}} \def\Csex#1{{\color{Red1}#1}} % «co» (to ".co") % (find-es "tex" "co") % \co: a low-level way to typeset code; a poor man's "\verb" \def\cocolor{} \def\cocolor{\color{DarkGreen!80!black}} \def\co#1{{% \cocolor% \def\%{\char37}% \def\\{\char92}% \def\^{\char94}% \def\~{\char126}% \tt#1% }} \def\qco#1{`\co{#1}'} \def\qqco#1{``\co{#1}''} \def\pco#1{\par\co{#1}} \noedrxfooter % (find-LATEX "edrxheadfoot.tex") \setlength{\parindent}{0em} % _____ _ _ _ % |_ _(_) |_| | ___ _ __ __ _ __ _ ___ % | | | | __| |/ _ \ | '_ \ / _` |/ _` |/ _ \ % | | | | |_| | __/ | |_) | (_| | (_| | __/ % |_| |_|\__|_|\___| | .__/ \__,_|\__, |\___| % |_| |___/ % % «title-page» (to ".title-page") % (ecop 1 "title-page") % (eco "title-page") % (find-LATEX "2019ilha-grande-slides.tex" "title-page") % (find-LATEX "2018vichy-vgms-slides.tex" "title-page") % (find-TH "emacsconf2019") \thispagestyle{empty} % (find-es "tex" "thispagestyle") \begin{center} \begin{tabular}{c} {\Large {\bf How to record \ColorRed{executable notes}}} \\[1pt] {\Large {\bf with \ColorGreen{eev}, and how to}} \\[1pt] {\Large {\bf \ColorViolet{play them back}}} \\[1pt] \ColorGray{(talk @ EmacsConf 2019; short version)} \end{tabular} \bsk \begin{tabular}[c]{r} By: \\ Eduardo Ochs $→$ \\ \ColorGray{(original author)} \\ \\ Selana Ochs $→$ \\ \ColorGray{(recent contributor)} \\ \end{tabular} \!\!\!\!\!\!\! \begin{tabular}[c]{c} $\includegraphics[height=90pt]{2019emacsconf-eu-e-selana.jpg}$ \end{tabular} % \msk % \url{http://angg.twu.net/\#eev} \end{center} \newpage % ____ _ _ _ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | % | __/| | | __/ | | | \__ \ || (_) | | | |_| | % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | % |___/ % % «prehistory» (to ".prehistory") % (ecop 2 "prehistory") % (eco "prehistory") % (find-escripts-intro "1. Prehistory") {\bf Prehistory} \ColorRed{Eev appeared by accident.} \ssk In 1995 I bought a computer that could run GNU/Linux and a Linux CD. I was studying Maths at the university, and I knew a tiny bit of *NIX and Lisp. \ssk I was fascinated by programming and *NIX seemed to be ``the right thing''. \ssk My social skills were bad. ``Everybody uses vi'', but... \ssk My memory was bad too, and I typed slowly and with lots of mistakes, so at one point I gave up learning vi, and tried Emacs. \msk It was \ColorRed{\bf\Large MIND-BLOWING.} \newpage % ____ _ _ _ ____ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ |___ \ % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | __) | % | __/| | | __/ | | | \__ \ || (_) | | | |_| | / __/ % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | |_____| % |___/ % % «prehistory-2» (to ".prehistory-2") % (ecop 3 "prehistory-2") % (eco "prehistory-2") {\bf Prehistory (2)} My notes started to have lots of ``elisp hyperlinks'' to files and directories that I found interesting... \msk {\footnotesize \pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/")} \pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/files.el")} %\pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el")} %\pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el" \Cnum{423})} %\pco{\ \ (find-efile "files.el")} %\pco{\ \ (find-efile "files.el" \Cnum{423})} %\pco{\ \ (find-efile "files.el" \Cstr{"(defun find-file "})} } \msk At first I used \qco{find-file}, then I created a variant called \qco{find-fline}, that accepted a \Cnum{line number}, then I made it accept a \Cstr{string to search for}, then I invented ``shorter hyperlinks'', like \qco{find-efile}... \msk {\footnotesize %\pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/")} %\pco{\ \ (find-file "/usr/share/emacs/19.24/lisp/files.el")} \pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el")} \pco{\ \ (find-fline "/usr/share/emacs/19.24/lisp/files.el" \Cnum{423})} \pco{\ \ (find-efile "files.el")} \pco{\ \ (find-efile "files.el" \Cnum{423})} \pco{\ \ (find-efile "files.el" \Cstr{"(defun find-file "})} } \newpage % ____ _ _ _ _____ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ |___ / % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | |_ \ % | __/| | | __/ | | | \__ \ || (_) | | | |_| | ___) | % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | |____/ % |___/ % % «prehistory-3» (to ".prehistory-3") % (ecop 4 "prehistory-3") % (eco "prehistory-3") {\bf Prehistory (3)} I also wrote a \ColorRed{very primitive} way to send the region to a shell. \qco{M-x eev} (meaning: emacs-execute-verbosely) wrote the region into the file \qco{\~/.eev/ee.sh} (actually \qco{\$EE}), and if I typed \qco{ee} in a shell it would run the commands in \qco{\$EE} in \ColorRed{verbose mode}, i.e., outputting each command before executing it. I had this in my \qco{\~/.zshrc}: \msk {\footnotesize \pco{\ \ export EEVTMPDIR=\$HOME/.eev} \pco{\ \ export EE=\$EEVTMPDIR/ee.sh} \pco{\ \ function ee () \{ set -v; . \$EE; set +v; \}} } \msk The \qco{. \$EE} was a trick to run the commands ``\ColorRed{in the current shell environment}'', so that things like \qco{cd} and \qco{export} would work ``as expected''... \newpage % ____ _ _ _ _ _ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ | || | % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | | || |_ % | __/| | | __/ | | | \__ \ || (_) | | | |_| | |__ _| % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | |_| % |___/ % % «prehistory-4» (to ".prehistory-4") % (ecop 5 "prehistory-4") % (eco "prehistory-4") {\bf Prehistory (4)} In a few months I had created several other kinds of elisp hyperlinks that also supported those extra arguments (``\ColorRed{pos-spec-lists}'') that indicated \ColorRed{strings to search for...} Some examples: \msk {\footnotesize \pco{\ \ \# (find-man "1 gawk" \Cstr{"Built-in Variables"})} \pco{\ \ \# (find-man "1 gawk" \Cstr{"I/O Statements"})} \pco{\ \ \# (find-man "1 gawk" \Cstr{"String Functions"})} \pco{\ \ \# (find-node "(make)Automatic Variables" \Cstr{"\$*" "stem"})} \pco{\ \ \# (find-node "(make)Recursion")} \pco{\ \ \# (find-node "(make)Special Targets" \Cstr{".PRECIOUS"})} \pco{\ \ \# (find-node "(make)Chained Rules" \Cstr{".SECONDARY"})} \pco{\ \ \# (find-sh "man -d print > /dev/null")} \pco{\ \ \# (find-sh "man -d print > /dev/null |\& grep print")} } \newpage % ____ _ _ _ ____ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ | ___| % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | |___ \ % | __/| | | __/ | | | \__ \ || (_) | | | |_| | ___) | % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | |____/ % |___/ % % «prehistory-5» (to ".prehistory-5") % (ecop 6 "prehistory-5") % (eco "prehistory-5") {\bf Prehistory (5)} These elisp hyperlinks could be put in comments. They were always the \ColorRed{sexp at the end of the line:} \msk {\footnotesize \pco{\ \ \#!/usr/bin/tclsh} \pco{\ \ \# \Csex{(find-fline "\~/TCL/inc.tcl")}} \pco{\ \ source \$env(HOME)/TCL/inc.tcl} \pco{\ \ eval [lindex \$argv 1]} } \msk I made \qco{M-e} work like \qco{C-e C-x C-e}: \msk \begin{tabular}{rcl} \quad \qco{C-x C-e} & $→$ & \qco{eval-last-sexp} \\ \qco{M-e} & $→$ & \qco{eval-sexp-eol} \\ \end{tabular} \msk At that time I was using mostly shell, elisp, Awk, Icon, Tcl, Expect, C, Forth, makefiles, \TeX/\LaTeX, and config files, and \ColorRed{all these languages and interpreters supported elisp hyperlinks in comments.} \newpage % ____ _ _ _ __ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ / /_ % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | | '_ \ % | __/| | | __/ | | | \__ \ || (_) | | | |_| | | (_) | % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | \___/ % |___/ % % «prehistory-6» (to ".prehistory-6") % (ecop 7 "prehistory-6") % (eco "prehistory-6") % (find-eev "eev-prepared.el") {\bf Prehistory (6)} I also created variants of \qco{M-x eev} that could send regions of text to other external interpreters besides shells, like Tcl, GDB, \LaTeX, and... \newpage % ____ _ _ _ _____ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ |___ | % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | / / % | __/| | | __/ | | | \__ \ || (_) | | | |_| | / / % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | /_/ % |___/ % % «prehistory-7» (to ".prehistory-7") % (ecop 8 "prehistory-7") % (eco "prehistory-7") {\bf Prehistory (7)} ...and in a few years I had several megabytes of: \ssk \begin{tabular}{cl} 1) & \ColorRed{scripts} with elisp hyperlinks in comments, \\[2.5pt] 2) & ``\ColorRed{executable notes}'' (or ``\ColorRed{e-scripts}''): a free-form mix \\& of elisp hyperlinks, blocks of code to be sent to \\& shells and other interpreters, and comments \\& in English/Portuguese/whatever... \\ \end{tabular} \msk In 1997 I started to have internet at home, and in 1999 I created a home page and uploaded \ColorRed{all} these scripts and notes to it, because it was \ssk \begin{tabular}{cl} 1) & good karma, \\[2.5pt] 2) & a way to become a person who \\& \ColorRed{deserves hints and help.} \\ \end{tabular} \newpage % ____ _ _ _ ___ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ ( _ ) % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | / _ \ % | __/| | | __/ | | | \__ \ || (_) | | | |_| | | (_) | % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | \___/ % |___/ % % «prehistory-8» (to ".prehistory-8") {\bf Prehistory (8)} I was sure that \ColorRed{everybody} was using Emacs like that. At one point I sent an e-mail to one of the Emacs MLs. In the e-mail I used some elisp hyperlinks and other tricks. I explained how to use everything there, and I apologized: ``I don't know what are the standard functions that do that, so I wrote my own ones. Sorry for the ugly names...'' \msk RMS himself answered. It was sort of: ``This looks interesting, and AFAIK no one else is using Emacs like this. Someone should clean up the code and document it so that we can included it in Emacs. Can you do that?'' \newpage % ____ _ _ _ ___ % | _ \ _ __ ___| |__ (_)___| |_ ___ _ __ _ _ / _ \ % | |_) | '__/ _ \ '_ \| / __| __/ _ \| '__| | | | | (_) | % | __/| | | __/ | | | \__ \ || (_) | | | |_| | \__, | % |_| |_| \___|_| |_|_|___/\__\___/|_| \__, | /_/ % |___/ % % «prehistory-9» (to ".prehistory-9") % (ecop 10 "prehistory-9") % (eco "prehistory-9") {\bf Prehistory (9)} I started to work to make Eev an official package, and I submitted some code. RMS had some objections... \ssk In 2000 (?) he gave a talk in Campinas, that is 500Km away from where I live (Rio de Janeiro). I went there, and chatted with him after the talk. \ssk He said that \ColorRed{users should not be forced to see Lisp}. \msk I was \ColorRed{\large \bf INCREDIBLY OFFENDED.} RMS was so startled by my reaction that he walked away. \ssk For me the ability to write elisp one-liners was \ColorRed{\large \bf THE} thing that completely dissolved the barrier between ``users'' and ``programmers''. It was a beautiful catalyst, and the distilled essence of Free Software. \newpage % _____ _____ _ ____ _ % | ____|_____ __ | ____| | | _ \ / \ % | _| / _ \ \ / / | _| | | | |_) / _ \ % | |__| __/\ V / | |___| |___| __/ ___ \ % |_____\___| \_/ |_____|_____|_| /_/ \_\ % % «eev-elpa» (to ".eev-elpa") % (ecop 11 "eev-elpa") % (eco "eev-elpa") {\bf Eev as an ELPA package} \ssk \begin{tabular}{ll} 2000: & \ColorRed{``users should not be forced to see Lisp''} \\ & \qco{M-x eev} was hard to set up \\ & (it needed changing rcfiles) \\[5pt] 2019: & \qco{M-x eev} is now obsolete ($→$ \co{eepitch}) \\ & setup is now trivial \\ & lots of sandboxed tutorials: \co{(find-*-intro)} \\[2pt] & I've been using eev to teach Emacs and \\ & Free Software principles to people who \\ & didn't know programming or *NIX \\[2pt] & people can learn it by memorizing just three keys: \\ & \qco{M-e} (``execute''), \qco{M-j} (``jump''), \\ & \qco{M-k} (``kill this buffer'') % \end{tabular} % (like in Neal Stephenson's \\ % & ``In the Beginning it was the command line'') \\ \newpage % _____ _____ _ ____ _ ____ % | ____|_____ __ | ____| | | _ \ / \ |___ \ % | _| / _ \ \ / / | _| | | | |_) / _ \ __) | % | |__| __/\ V / | |___| |___| __/ ___ \ / __/ % |_____\___| \_/ |_____|_____|_| /_/ \_\ |_____| % % «eev-elpa-2» (to ".eev-elpa-2") % (ecop 12 "eev-elpa-2") % (eco "eev-elpa-2") % (find-es "eev" "eev-in-elpa") {\bf Eev as an ELPA package (2)} In april 10, 2019 Eev became an ELPA package. The new eev has lots of tutorials, with names like: \ssk {\footnotesize \pco{\ \ 0. (find-eev-quick-intro)} \pco{\ \ 1. (find-emacs-keys-intro)} \pco{\ \ 2. (find-eev-intro)} \pco{\ \ 3. (find-here-links-intro)} \pco{\ \ 4. (find-refining-intro)} \pco{\ \ 5. (find-pdf-like-intro)} \pco{\ \ 6. (find-eepitch-intro)} \pco{\ \ 7. (find-audiovideo-intro)} \pco{\ \ 8. (find-rcirc-intro)} \pco{\ \ 9. (find-eev-install-intro)} } \msk The ``beginner setup'' turns \co{eev-mode} on and opens \co{(find-eev-quick-intro)}. % People can learn it by memorizing just three keys: % \qco{M-e} (``execute''), \qco{M-j} (``jump''), \qco{M-k} (``kill this buffer'') \newpage % __ __ _ % | \/ | (_) % | |\/| |_____| | % | | | |_____| | % |_| |_| _/ | % |__/ % % «M-j» (to ".M-j") % (ecop 13 "M-j") % (eco "M-j") {\bf `M-j'} If you type just \qco{M-j} without a numeric prefix you get a page whose header is this: \msk {\footnotesize \pco{\ \ ;; Generated by: (find-eejumps)} \pco{\ \ ;; See: \Csex{(find-eev-quick-intro "7.1. `eejump'" "`M-j'")}} \pco{\ \ ;; \ \ \ \ \ \Csex{(find-emacs-keys-intro "1. Basic keys (eev)")}} \pco{\ \ ;; \ \ \ \ \ \Csex{(find-emacs-keys-intro "2. Key sequences")}} \pco{\ \ ;; For example,} \pco{\ \ ;; \ \ \ \ M-1 M-j \ runs: \ (find-fline "\~/TODO")} \pco{\ \ ;; \ \ \ \ M-2 M-j \ runs: \ \Csex{(find-emacs-keys-intro)}} \pco{\ \ ;; \ \ \ \ M-5 M-j \ runs: \ \Csex{(find-eev-quick-intro)}} \pco{\ \ ;; Current eejump targets:} } \msk The tutorial \qco{(find-emacs-keys-intro)} starts with a section about the keys of eev and then has several sections about the main keys of Emacs, \ColorRed{with hyperlinks to the Emacs manuals.} \newpage % ____ % | _ \ ___ _ __ ___ ___ % | | | |/ _ \ '_ ` _ \ / _ \ % | |_| | __/ | | | | | (_) | % |____/ \___|_| |_| |_|\___/ % % «demo» (to ".demo") % (ecop 13 "demo") % (eco "demo") {\bf A demo} % (find-eev-install-intro "1. Beginners and experts") % (find-eev-install-intro "2. The expert setup") % (Only one minute left!) So: \qco{M-x eev} is obsolete, It has been replaced by \qco{<f8>}, that always operates on the current line, and moves down. \ssk On \ColorRed{normal lines} it sends the current line to the target buffer (usually \qqco{*shell*}) \ssk On \ColorRed{red star lines} it executes the current line as Lisp (we use this to set up the target buffer). \msk The following demo shows how I: downloaded the Debian source package of \co{xpdf}, unpacked it, found the code that implemented ``touchpad scroll'', commented it out, and compiled and installed the changed version. \newpage % _ _ _ % | | (_)_ __ | | _____ % | | | | '_ \| |/ / __| % | |___| | | | | <\__ \ % |_____|_|_| |_|_|\_\___/ % % «links» (to ".links") % (ecop 15 "links") % (eco "links") {\bf Links} See: \url{http://angg.twu.net/\#eev} \url{http://angg.twu.net/emacsconf2019.html} \url{http://angg.twu.net/e/emacsconf2019.e.html\#short} \msk Most of the ``several megabytes of free-form executable notes'' mentioned in slide 8 are here: \url{http://angg.twu.net/e/} % (find-sh "cd ~/e/ && wc *.e") % (find-sh "cd ~/e/ && wc *.e | sort -n") \bsk \phantom{aa} \ColorRed{Thank you! $=)$} % (find-es "emacsconf2019" "short") % (find-es "ps" "xpdf-touchpad-scroll") % (find-TH "emacsconf2019") % https://en.wikipedia.org/wiki/Touchpad % https://en.wikipedia.org/wiki/Scroll_wheel % https://help.gnome.org/users/gnome-help/stable/mouse-touchpad-click.html.en % https://en.wikipedia.org/wiki/Pointing_device_gesture \end{document} % (find-es "eev" "eek-pkg-announcement") % (find-angg ".zshrc" "ee") % (find-zshnode "Shell Builtin Commands" "source FILE") % (find-zshnode "Shell Builtin Commands" ". FILE") % (find-anggfile ".bashrc") % (find-escripts-intro "3. Sharing") % (find-escripts-intro "3. Sharing" "Eev Manifesto") % (find-escripts-intro "3. Sharing" "in a public place") % One of its features was incompatible with UTF-8 % https://en.wikipedia.org/wiki/UTF-8 % Since 2009, UTF-8 has been the dominant encoding (of any kind, not % just of Unicode encodings) for the World Wide Web \end{document} % Local Variables: % coding: utf-8-unix % ee-tla: "eco" % End: