[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eev 3950e1e 16/64: First commit in two years; `find-eev
From: |
Stefan Monnier |
Subject: |
[elpa] externals/eev 3950e1e 16/64: First commit in two years; `find-eev-quick-intro', `to-latin1', and lots more |
Date: |
Sun, 7 Apr 2019 16:59:04 -0400 (EDT) |
branch: externals/eev
commit 3950e1e6f071d0175e57ffdd6a0bfb939d5b7b0d
Author: Eduardo Ochs <address@hidden>
Commit: Eduardo Ochs <address@hidden>
First commit in two years; `find-eev-quick-intro', `to-latin1', and lots
more
---
VERSION | 4 +-
eejump.el | 18 +-
eev-anchors.el | 32 +++-
eev-blinks.el | 29 +++-
eev-env.el | 77 ++++++++-
eev-intro.el | 524 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
eev-pdflike.el | 4 +
eev-tlinks.el | 96 ++++++++---
eev-wrap.el | 32 +++-
9 files changed, 720 insertions(+), 96 deletions(-)
diff --git a/VERSION b/VERSION
index acadc47..1499217 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Tue Jun 30 20:41:22 GMT 2015
-Tue Jun 30 17:41:22 BRT 2015
+Dom Jul 30 04:10:51 GMT 2017
+Dom Jul 30 01:10:51 BRT 2017
diff --git a/eejump.el b/eejump.el
index b50ec93..f4b5d4e 100644
--- a/eejump.el
+++ b/eejump.el
@@ -1,6 +1,6 @@
;;; eejump.el -- jump quickly to predefined places.
-;; Copyright (C) 2012 Free Software Foundation, Inc.
+;; Copyright (C) 2012,2016 Free Software Foundation, Inc.
;;
;; This file is (not yet?) part of GNU eev.
;;
@@ -19,21 +19,26 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2013sep08
+;; Version: 2016sep23
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eejump.el>
;; htmlized: <http://angg.twu.net/eev-current/eejump.el.html>
;; See also: <http://angg.twu.net/eev-current/eev-readme.el.html>
;; <http://angg.twu.net/eev-intros/find-eev-intro.html>
+;; <http://angg.twu.net/eev-intros/find-eev-quick-intro.html>
;; <http://angg.twu.net/eev-intros/find-eejump-intro.html>
;; (find-eev-intro)
+;; (find-eev-quick-intro)
;; (find-eejump-intro)
;;; Commentary:
-;; See: (find-eejump-intro)
-;; and: (find-eev "eev-wrap.el" "eewrap-eejump")
+;; See: (find-eev-quick-intro "7.1. eejump")
+;; (find-eev-quick-intro "7.1. eejump" "meta-uppercase-j")
+;; (find-eejump-intro)
+;; (find-eev "eev-wrap.el" "eewrap-eejump")
+;; (find-eev "eev-blinks.el" "find-eejumps")
@@ -44,10 +49,11 @@
(define-key eev-mode-map "\M-j" 'eejump)
(defun eejump (arg)
- "See: (find-eejump-intro)"
+ "See: (find-eev-quick-intro \"7.1. eejump\")
+and: (find-eejump-intro)"
(interactive "P")
(if (null arg)
- (eejump-*)
+ (find-eejumps) ; was: (eejump-*)
(if (fboundp (intern (format "eejump-%d" arg)))
(funcall (intern (format "eejump-%d" arg)))
(eejump-str* (format "%d" arg)))))
diff --git a/eev-anchors.el b/eev-anchors.el
index d39c1f4..ab963b1 100644
--- a/eev-anchors.el
+++ b/eev-anchors.el
@@ -64,6 +64,30 @@
+;;; _ _ _ _ _
+;;; ___ ___ | |_ ___ | | __ _| |_(_)_ __ / |
+;;; / _ \/ _ \_____| __/ _ \| |/ _` | __| | '_ \| |
+;;; | __/ __/_____| || (_) | | (_| | |_| | | | | |
+;;; \___|\___| \__\___/|_|\__,_|\__|_|_| |_|_|
+;;;
+;; 2017jul29: this is a low-level hack to allow anchors like "�tag�"
+;; to work on both unibyte and multibyte buffers and files without
+;; requiring the user to set the variable `ee-anchor-format' in the
+;; local variables section.
+
+(defun ee-to-coding (coding str)
+ (ee-no-properties (decode-coding-string str coding)))
+
+(defun ee-tolatin1 (str)
+ "Make STR compatible with both unibyte and multibyte buffers.
+Convert STR to a multibyte format that works in both
+unibyte (raw-text) and multibyte (e.g., utf-8) buffers. This may
+fail if STR contains chars that are not in the latin-1 range.
+This function is used by `ee-format-as-anchor'."
+ (ee-to-coding 'latin-1 str))
+
+
+
;;; _ __ _
;;; __ _ _ __ ___| |__ ___ _ __ / _| ___ _ __ _ __ ___ __ _| |_
@@ -81,7 +105,7 @@
(defun ee-format-as-anchor (tag)
"Convert TAG into an anchor using `ee-anchor-format'."
(if ee-anchor-format
- (format ee-anchor-format tag)
+ (format (ee-tolatin1 ee-anchor-format) tag)
(error "`ee-anchor-format' is nil - can't convert string to anchor")))
@@ -107,9 +131,9 @@ searches for the first occurrence of \"<<foo>>\" in the
current
buffer, then for the first occurrence of \"bar\" after that. If
\"<<foo>>\" is not found then do not move point.
-It is good style to set `ee-goto-anchor' globally to nil and only
-use anchors in files where `ee-anchor-format' is declared in the
-local variables section of the file; see:
+It is good style to set `ee-anchor-format' globally to nil and
+only use anchors in files where `ee-anchor-format' is declared in
+the local variables section of the file; see:
(find-node \"(emacs)File Variables\")
(find-node \"(emacs)Specifying File Variables\")
diff --git a/eev-blinks.el b/eev-blinks.el
index a495666..732a1d2 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -3,7 +3,7 @@
;;; and that are not created by `code-c-d' and friends.
;; Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,
-;; 2009,2010,2011,2012,2013,2014 Free Software Foundation, Inc.
+;; 2009,2010,2011,2012,2013,2014,2016 Free Software Foundation, Inc.
;;
;; This file is (not yet) part of GNU eev.
;;
@@ -22,7 +22,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2014oct10
+;; Version: 2016apr20
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-blinks.el>
@@ -51,6 +51,7 @@
;; �.find-Package� (to "find-Package")
;; �.find-epp� (to "find-epp")
;; �.find-einternals� (to "find-einternals")
+;; �.find-eejumps� (to "find-eejumps")
@@ -791,9 +792,11 @@ Examples: (find-echarsetchars 'mule-unicode-0100-24ff
\"733x\")
;;; |_| |_|_| |_|\__,_| \___|\___|/ |\__,_|_| |_| |_| .__/|___/
;;; |__/ |_|
;;
-;; A hack to diplay all the current eejump targets.
-;; Should this be here? See: (find-eev "eejump.el")
-;; Try: (find-eejumps)
+;; �find-eejumps� (to ".find-eejumps")
+;; Display all the current eejump targets.
+;; Related to: (find-eev "eejump.el")
+;; Try: (find-eejumps)
+;; See: (find-eev-quick-intro "find-eejumps")
(defun ee-defun-sexp-for (symbol)
`(defun ,symbol ,@(cdr (symbol-function symbol))))
@@ -803,13 +806,23 @@ Examples: (find-echarsetchars 'mule-unicode-0100-24ff
\"733x\")
"^(defun \\([^ ]+\\) nil " "(defun \\1 () "
(ee-S (ee-defun-sexp-for symbol))))
-(defun eejump-symbols ()
+(defun ee-eejump-symbols ()
(apropos-internal "^eejump-[0-9]*\\*?$"))
+(defun ee-find-eejumps-header ()
+ ";; (find-eejumps)
+;; See: (find-eev-quick-intro \"7.1. eejump\")
+;; (find-eejump-intro)
+;; Current eejump targets:\n\n")
+
+(defun ee-find-eejumps-body ()
+ (mapconcat 'ee-defun-str-for (ee-eejump-symbols) "\n"))
+
(defun find-eejumps (&rest pos-spec-list) (interactive)
+ "See: (find-eev-quick-intro \"find-eejumps\")"
(apply 'find-estring-elisp
- (concat ";; (find-eejumps)\n\n"
- (mapconcat 'ee-defun-str-for (eejump-symbols) "\n"))
+ (concat (ee-find-eejumps-header)
+ (ee-find-eejumps-body))
pos-spec-list))
diff --git a/eev-env.el b/eev-env.el
index 1db1e66..c520408 100644
--- a/eev-env.el
+++ b/eev-env.el
@@ -1,6 +1,6 @@
;;; eev-env.el -- set some environment variables.
-;; Copyright (C) 2012 Free Software Foundation, Inc.
+;; Copyright (C) 2012,2016 Free Software Foundation, Inc.
;;
;; This file is (not yet?) part of GNU eev.
;;
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2012nov02
+;; Version: 2016sep18
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-env.el>
@@ -56,20 +56,79 @@
;; (find-eevrcfile ".bashrc")
;; (find-eevrcfile ".zshrc")
+;; Note: `ee-setenv' and its calls for "S" and "EEVDIR" were moved to:
+;; (find-eev "eev.el" "ee-setenv")
+;;
(defun ee-setenv (envvar value)
"In case the environment variable ENVVAR was not set set it to VALUE."
(if (null (getenv envvar))
(setenv envvar (ee-expand value))))
-(ee-setenv "S" "~/snarf") ; for `find-psne-links'
+(ee-setenv "S" "~/snarf") ; for `find-psne-links'
-;; Obsolete? See:
-;; (find-eev "eev-bounded.el")
-;; (find-eev "eev.el" "ee-setenv")
(ee-setenv "EEVDIR"
- (let ((fname (locate-library "eev")))
- (if fname (directory-file-name (file-name-directory fname))
- "~/eev-current"))) ; eev.el, etc
+ (let ((fname (locate-library "eev")))
+ (if fname (directory-file-name (file-name-directory fname))
+ "~/eev-current"))) ; eev.el, etc
+
+
+
+
+;;; _ _ _
+;;; ___ ___ __ _(_) |_| |__ ___ _ ____ __
+;;; / _ \/ _ \____\ \ /\ / / | __| '_ \ _____ / _ \ '_ \ \ / /
+;;; | __/ __/_____\ V V /| | |_| | | |_____| __/ | | \ V /
+;;; \___|\___| \_/\_/ |_|\__|_| |_| \___|_| |_|\_/
+;;;
+;; `ee-with-env' run a sexp in a modified environment.
+;; Tests:
+;;
+;; (ee-with-env '(("FOO" "~/foo") ("FOOL" "oo")) '(find-sh0 "set | grep -a
FOO"))
+;; (ee-with-env '(("FOO" "~/foo") "FOOL=oo") '(find-sh0 "set | grep -a
FOO"))
+;; (ee-with-env "FOO=~/foo FOOL=oo" '(find-sh0 "set | grep -a
FOO"))
+;; (ee-with-env "" '(find-sh0 "set | grep -a
FOO"))
+;;
+;; (ee-with-env0 '("A" "B=" "C=~/foo" ("D") ("E" "") ("F" "$SHELL")))
+;; --> ("A" "B=" "C=/home/edrx/foo" "D" "E=" "F=/usr/bin/zsh")
+;; (ee-with-env0 "A B= C=~/foo")
+;; --> ("A" "B=" "C=/home/edrx/foo")
+;;
+;; See:
+;; (find-evardescr 'process-environment "without \"=VALUE\"")
+;; (find-evardescr 'process-environment "first one")
+
+(defun ee-with-env (changes code)
+ "Run the sexp CODE with the changes CHANGES in the environment.
+CHANGES can be a list of (\"VAR\" \"VALUE\") pairs, a list of
+\"VAR=VALUE\" strings, or a string that is split into
+\"VAR=VALUE\" substrings at whitespace. Each \"VALUE\" is
+expanded with `ee-expand'.\n
+See the source for details, examples, and tests."
+ (eval `(let ((process-environment
+ (append (ee-with-env0 ',changes) process-environment)))
+ ,code)))
+
+(defun ee-with-env0 (changes)
+ "An internal function used by `ee-with-env'. See the source."
+ (mapcar 'ee-with-env00 (if (stringp changes) (ee-split changes) changes)))
+
+(defun ee-with-env00 (change)
+ "An internal function used by `ee-with-env'. See the source."
+ (if (stringp change)
+ ;; cases "A", "B=", "C=...":
+ (let ((pos (string-match "=" change)))
+ (if (not pos)
+ change ; case "A"
+ (let ((var (substring change 0 pos))
+ (val (substring change (1+ pos))))
+ (format "%s=%s" var (ee-expand val))))) ; cases "B=" and "C=..."
+ ;; cases ("D"), ("E" ""), ("F" "$FOO"):
+ (if (not (cdr change))
+ (car change)
+ (format "%s=%s" (car change) (ee-expand (cadr change))))))
+
+
+
(provide 'eev-env)
diff --git a/eev-intro.el b/eev-intro.el
index 6ec295c..93aa788 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -1,6 +1,6 @@
;;; eev-intro.el --- intro scripts for eev
-;; Copyright (C) 2013,2014 Free Software Foundation, Inc.
+;; Copyright (C) 2013,2014,2016,2017 Free Software Foundation, Inc.
;;
;; This file is (not yet?) part of GNU eev.
;;
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2014aug23
+;; Version: 2017jul29
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-intro.el>
@@ -31,6 +31,7 @@
;;; Commentary:
;;
;; To use this, simply execute any of the sexps below:
+;; (find-eev-quick-intro)
;; (find-eev-intro)
;; (find-eval-intro)
;; (find-eepitch-intro)
@@ -117,6 +118,7 @@ Here is a list of all the available sandbox-y tutorials that
explain parts and concepts of eev, listed in (a kind of)
recommended reading order:
+ 00. (find-eev-quick-intro)
0. (find-eev-intro)
1. (find-eval-intro)
2. (find-eepitch-intro)
@@ -137,8 +139,8 @@ recommended reading order:
18. (find-channels-intro)
19. (find-videos-intro)
-Items 1 and 2 should give you a good grasp of the main ideas -
-namely, that _elisp hyperlinks and interactive scripts can be
+Items 00, 1 and 2 should give you a good grasp of the main ideas
+- namely, that _elisp hyperlinks and interactive scripts can be
embedded anywhere_. The other tutorials mainly show how to make
these ideas pervasive.
@@ -5387,12 +5389,13 @@ The most basic keys of eev are:
M-e - to follow a hyperlink, see: (find-eval-intro \"Elisp hyperlinks\")
M-k - to go back, see: (find-eval-intro \"\\nGoing back\")
M-j - to jump to certain predefined places - in particular,
- `M-j' takes you to the list of jump targets in (find-eev
\"eejump.el\")
+ `M-j' takes you to the list of jump targets.
`M-2j' takes you to this help page.
`M-5j' takes you to: (find-eev-intro)
See: (find-eejump-intro \"Families\")
M-h M-h - hyperlinks to here, plus help.
- See: (find-links-intro \"`find-here-links'\")
+ See: (find-eev-quick-intro \"7.1. eejump\")
+ (find-links-intro \"`find-here-links'\")
The mnemonics are:
@@ -5622,7 +5625,7 @@ http://www.youtube.com/watch?v=oJTwQvgfgMM Emacs Org-mode
- a system for note-ta
(defun find-eev-quick-intro (&rest pos-spec-list) (interactive)
(let ((ee-buffer-name "*(find-eev-quick-intro)*"))
(apply 'find-estring "\
-\\(Re)generate: (find-eev-quick-intro)
+\(Re)generate: (find-eev-quick-intro)
Source code: (find-efunction 'find-eev-quick-intro)
More intros: (find-eev-intro)
(find-eval-intro)
@@ -5633,16 +5636,18 @@ Is is meant as both a tutorial and a sandbox.
This is a tutorial for real beginners.
It supposes that you have Emacs installed.
+You may start by watching:
+ http://angg.twu.net/eev-videos/video-eev-quick-0.mp4 (installation basics)
+ http://angg.twu.net/eev-videos/video-eev-quick-1.mp4 (about this tutorial)
+ http://angg.twu.net/eev-videos/video4-eepitch.mp4 (all of eev's main ideas)
-1. Installing eev
-=================
-Start by watching the video at
- http://angg.twu.net/eev-videos/eev-quick.mp4
-to see how things should look like.
-Then open the page at
+
+1. Installing eev
+=================
+Open the page at
http://angg.twu.net/eev-intros/find-eev-quick-intro.html
@@ -5742,13 +5747,25 @@ hyperlinks:
(find-efunctiondescr 'find-file)
(find-man \"cat\")
+Not all elisp hyperlinks \"go somewhere\"; some are like buttons that
+perform an action, like the one below, that acts as if the user had
+pressed a series of keys,
+
+ (eek \"<down> C-a H E L L O ! <up> C-e\")
+
+and some display their output in the echo area:
+
+ (find-sh0 \"date\")
+
The following elisp hyperlinks may or may not work - try them too, but
-be aware that they may show errors instead of opening a new browser.
-The first one opens a page - actually a section, whose short title is
-\"Lisp Eval\" - from the main Emacs manual. The second one opens the
-file with the source code (in Lisp) for the function `find-file'.
+be aware that they may show errors instead of opening a new buffer.
+The first two of them open a page - actually a section, whose short
+title is \"Lisp Eval\" - from the main Emacs manual. The third one
+opens the file with the source code (in Lisp) for the function
+`find-file'.
(find-node \"(emacs)Lisp Eval\")
+ (find-enode \"Lisp Eval\")
(find-efunction 'find-file)
If they don't work that means that you don't have the Emacs manuals,
@@ -5764,20 +5781,78 @@ access to the \"non-free\" respository... ask for help
if you need!
+
4. Creating Elisp Hyperlinks
============================
-You can write elisp hyperlinks by hand, but that is hard.
+You can write elisp hyperlinks by hand, but that is hard. It is better
+to generate hyperlinks automatically and then use cut and paste.
+
+Eev has several functions that generate \"elisp hyperlinks\" buffers.
+For example,
+
+ (find-efunction-links 'find-file)
+
+creates this buffer, and switches to it:
+ ___________________________________________________________
+ |# (find-efunction-links 'find-file) |
+ |# (where-is 'find-file) |
+ |# (describe-function 'find-file) |
+ |# (find-efunctiondescr 'find-file) |
+ |# (find-efunction 'find-file) |
+ |# (find-efunctionpp 'find-file) |
+ |# (find-efunctiond 'find-file) |
+ |# (find-estring (documentation 'find-file)) |
+ |# (find-estring (documentation 'find-file t)) |
+ |# (symbol-file 'find-file 'defun) |
+ |# (find-fline (symbol-file 'find-file 'defun)) |
+ | |
+ |# (Info-goto-emacs-command-node 'find-file) |
+ |# (find-enode \"Command Index\" \"* find-file:\") |
+ |# (find-elnode \"Index\" \"* find-file:\") |
+ | |
+ | |
+ |--:**- *Elisp hyperlinks* All L1 (Fundamental eev)--|
+ |___________________________________________________________|
+
+One standard way of using eev is:
+
+ a) we keep our current notes in a a file - for example, \"~/TODO\"
+ b) these notes are an \"executable log\" of what we did, including:
+ c) hyperlinks to things we saw or visited
+ d) commands issued to shells or shell-like programs (see sec. 6)
+
+The quickest way of generating hyperlinks for (c) is with `M-h M-h'
+\(`find-here-links'). When we type `M-h M-h' eev tries to generate an
+elisp hyperlinks buffer containing some hyperlinks to \"here\" - and how
+it does that depends on the major mode and on the name of the current
+buffer. For example, typing `M-h M-h' here generates:
+
+ ____________________________________________________________
+ |# See: |
+ |# (find-links-intro \"`find-here-links'\") |
+ |# (find-efunctiondescr 'eev-mode \"M-h M-h\") |
+ | |
+ |http://angg.twu.net/eev-intros/find-eev-quick-intro.html |
+ |# (find-eev-quick-intro) |
+ | |
+ | |
+ |--:**- *Elisp hyperlinks* All L1 (Fundamental eev) -|
+ |____________________________________________________________|
+
+The
+
+ # (find-eev-quick-intro)
+
+opens this tutorial.
+
+Cutting and pasting is explained briefly in section 5.2.
+
+A way to \"refine\" hyperlinks to make them more precise is
+explained here:
+
+ (find-eval-intro \"Producing and refining hyperlinks\")
-The \"normal\" way of using eev is to use hyperlinks a lot - every time
-you find something interesting you put a hyperlink to it into the file
-where you keeping your notes, so that it will be trivial to go back
-there later.
-When you type `M-h M-h' you get a temporary buffer with lots of
-hyperlinks, some of them pointing to where you were before typing `M-h
-M-h'. By using cut and paste between that buffer and where you keep
-you notes, creating hyperlinks become easy... but we will see how to
-do cut and paste and how to edit files later.
@@ -5795,7 +5870,7 @@ I've learned by heart after using Emacs for 20 years:
(find-emacs-intro \"Basic keys (Emacs)\")
-They are not very many, because I use this,
+They are not very many, because I use this a lot,
(find-node \"(emacs)M-x\")
@@ -5807,6 +5882,95 @@ type `M-2 M-j'.
+5.1. Navigating the Emacs manuals
+---------------------------------
+The Emacs manuals are in \"info\" format, which means:
+
+ a) they are divided into \"nodes\" - a top node, and chapters,
+ sections, subsections, etc,
+
+ b) the nodes in each manual in info format are organized as a tree,
+ and they're all numbered except for the top node, the indexes and
+ the appendixes. For example:
+
+ top --.-- 1 --.-- 1.1
+ | `-- 1.2
+ |-- 2
+ |-- 3 ----- 3.1 --.-- 3.1.1
+ | |-- 3.1.2
+ | `-- 3.1.3
+ |-- Appendix A
+ `-- Index
+
+ c) each node also has a short name. Elisp hyperlinks use the
+ (internal) name of the manual and the short name to jump straight
+ to a node in a manual. The table below has some examples:
+
+ Manual (full name) Node \"number\" elisp hyperlink
+ -----------------------------------------------------
+ Emacs Top (find-node \"(emacs)\")
+ Emacs 7 (find-node \"(emacs)Basic\")
+ Emacs 7.4 (find-node \"(emacs)Basic Undo\")
+ Emacs Concept Index (find-node \"(emacs)Concept
Index\")
+ Emacs Lisp Top (find-node \"(elisp)\")
+
+ d) Emacs uses \"Info mode\" when displaying nodes of manuals in info
+ format. These are the most important keys of Info mode:
+
+ q exit (go back to some other buffer)
+ (arrows) move point
+ RET follow link at point
+ TAB move to next link
+ BACKTAB move to prev link
+ n next (1->2->3->Appendix A; 3.1.1->3.1.1->3.1.2)
+ p previous (1<-2<-3<-Appendix A; 3.1.1<-3.1.1<-3.1.2)
+ u up (Top<-1<-1.1; 1<-1.2; 3<-3.1<-3.1.2, etc)
+ ] forward-node (Top->1->1.1->1.2->2->3->3.1->...->Index)
+ [ backward-node (Top<-1<-1.1<-1.2<-2<-3<-3.1<-...<-Index)
+
+Try the keys above now - they are VERY imporant! Use:
+
+ (eek \"<down> M-3 M-e ;; open the hyperlink below in another window\")
+ (find-node \"(emacs)Basic\")
+ (find-node \"(emacs)Major Modes\")
+
+
+
+5.2. Cutting and pasting
+------------------------
+You can do cut, copy and paste in a \"user-friendly\" way by using
+
+ a) the rightmost icons in the toolbar, or
+ b) the \"Edit\" menu in the menu-bar,
+
+but the keys are very much worth learning:
+
+ C-SPC -- set-mark-command (find-enode \"Setting Mark\")
+ C-x C-x -- exchange-point-and-mark (find-enode \"Setting Mark\" \"C-x
C-x\")
+ C-w -- kill-region (cut) (find-enode \"Other Kill Commands\")
+ M-w -- kill-ring-save (copy) (find-enode \"Kill Ring\")
+ C-y -- yank (paste) (find-enode \"Kill Ring\")
+
+The \"region\" where cut & paste operate is always what is between
+the \"point\" and the \"mark\". See:
+
+ (find-enode \"Point\")
+ (find-enode \"Mark\")
+
+Exercise: understand how the `eek' sexp below switches the two
+lines just after it.
+
+ (eek \"<down> C-a C-SPC <down> C-w <down> C-y 3*<up>\")
+ First
+ Second
+
+
+
+
+
+
+
+
6. Controlling shell-like programs
==================================
This is the second main feature of eev. The hyperlinks thing used the
@@ -5815,14 +5979,15 @@ and pasting. The module of eev that controls shell-like
programs - it
is called \"eepitch\" - uses `<F8>' and `M-T'. Note that it is
`alt-shift-t', to not interfere with Emacs's `M-t'.
-The sections below were copied from here:
+The sections below were adapted from:
(find-eepitch-intro \"The main key: <F8>\")
-7. The main key: <F8>
-=====================
+
+6.1. The main key: <F8>
+-----------------------
Emacs can run a shell in a buffer, and it can split its frame
into windows, like this:
___________________
@@ -5866,10 +6031,21 @@ cd /tmp/
echo \"We changed to: $(pwd)\"
+Note (for ADVANCED USERS):
+if the above does not work as expected then the code below MAY fix it -
+try it and copy it to your .emacs if it works...
+;; See: (find-eevfile \"eepitch.el\" \"defun eepitch-window-show\")
+\(defun eepitch-window-show ()
+ \"An emergency hack for Emacs versions where `display-buffer' is buggy\"
+ (find-2a nil '(find-ebuffer eepitch-buffer-name)))
-8. Other targets
-================
+
+
+
+
+6.2. Other targets
+------------------
Just like `(eepitch-shell)' creates a shell buffer and sets the
eepitch target to it, `(eepitch-python)' creates a buffer with a
Python interpreter and uses it as the eepitch target. Try:
@@ -5904,8 +6080,8 @@ print(open(\"/tmp/o\").read())
-9. Creating eepitch blocks: `M-T'
-=================================
+6.3. Creating eepitch blocks: `M-T'
+-----------------------------------
Write just \"shell\" or \"python\" in a line, then type
`M-T' (i.e., meta-shift-t) there. The line will be turned into
three - an \" (eepitch-xxx)\", an \" (eepitch-kill)\", and an
@@ -5921,8 +6097,8 @@ pwd
-10. Red stars
-=============
+6.4. Red stars
+--------------
Eepitch.el sets the glyph for the char 15 to a red star in the
standard display table. In layman's terms: eepitch.el tells Emacs
that the character 15 should be displayed as a red star. The
@@ -5931,9 +6107,281 @@ representation on screen would be \"^O\". You can enter
a
literal ^O in a buffer by typing `C-q C-o'.
-(To be continued...)
+
+
+7. Quick access to one-liners
+=============================
+
+
+7.1. eejump
+-----------
+We may have elisp one-liners that we want to be able to execute very
+quickly, and from anywhere. For example, I keep all my notes that I
+have not organized yet in a file called \"~/TODO\", and if I type
+
+ M-1 M-j
+
+then I \"jump\" to \"~/TODO\" - the effect is the same as running this:
+
+ (find-fline \"~/TODO\")
+
+Note that `M-1 M-j' can be typed as:
+
+ hold the meta key,
+ type 1,
+ type j,
+ release the meta key.
+
+Internally, what happens is that:
+
+ `M-j' is bound to `eejump',
+ `M-1 M-j' runs `eejump' with argument 1, i.e., (eejump 1)
+ (eejump 1) runs (eejump-1)
+ (eejump-1) has been defined with:
+
+ (defun eejump-1 () (find-fline \"~/TODO\"))
+
+Note that if you type `M-J' (i.e., meta-uppercase-j) on the line below
+then it will be converted into the \"(defun eejump-1 ...)\" above,
+
+ 1 (find-fline \"~/TODO\")
+
+and note also that if you type `M-j' without a prefix argument then it
+runs `(find-eejumps)', which displays all the current eejump targets,
+as defuns. Try it:
+
+ (eek \"M-j\")
+ (find-eejumps)
+
+An advanced feature: if you type `M-J' on a line that starts with
+something that is not a number, you get a defun for a \"command
+with a very short name\" like the ones that are described in the
+next section. Try it now:
+
+ (eek \"<down> M-J\")
+ e (find-fline \"/tmp/foo.tex\")
+
+
+
+
+
+7.2. Commands with very short names
+-----------------------------------
+Let's start with an example. If we are editing a LaTeX file, say
+\"/tmp/foo.tex\", then it is convenient to have quick ways to:
+
+ c) compile \"foo.tex\" into a \"foo.pdf\",
+ d) display the resulting \"foo.pdf\",
+ e) jump to \"foo.tex\" from anywhere to edit it.
+
+If our \"/tmp/foo.tex\" starts with these lines
+
+ % (defun c () (interactive) (find-sh \"cd /tmp/; pdflatex foo.tex\"))
+ % (defun d () (interactive) (find-xpdfpage \"/tmp/foo.pdf\"))
+ % (defun e () (interactive) (find-fline \"/tmp/foo.tex\"))
+
+and we execute these defuns, then from that point on `M-x c', `M-x d'
+and `M-x e' will do \"compile\", \"display\" and \"edit\" on \"foo.tex\", as
+described above.
+
+For more on `M-x', and on why the defuns above need the
+\"(interactive)\", see:
+
+ (find-node \"(emacs)M-x\")
+ (find-node \"(emacs)Commands\")
+ (find-node \"(elisp)Defining Commands\")
+
+
+
+
+7.3. `find-latex-links'
+-----------------------
+The easiest way to put the three defuns of the last section in
+the header of a LaTeX file is with:
+
+ (find-latex-links \"/tmp/foo\")
+
+`find-latex-links' is just one of several template functions that
+generate commands with very short names. Here's how to use it -
+the other ones are similar.
+
+ 1) Run `M-x find-latex-links'. You will get a buffer whose top
+ line is:
+
+ # (find-latex-links \"{stem}\")
+
+ 2) Edit that, and change the \"{stem}\" to \"/tmp/foo\".
+
+ 3) Execute that top line, which is now:
+
+ # (find-latex-links \"/tmp/foo\")
+
+ You should get:
+
+ _____________________________________________________________________
+ |# (find-latex-links \"/tmp/foo\") |
+ |# (find-eev-quick-intro \"`find-latex-links'\") |
+ |# (ee-copy-rest 1 '(find-fline \"/tmp/foo.tex\")) |
+ | |
+ |% (defun c () (interactive) (find-sh \"pdflatex foo.tex\")) |
+ |% (defun d () (interactive) (find-pdf-page \"/tmp/foo.pdf\")) |
+ |% (defun e () (interactive) (find-fline \"/tmp/foo.tex\")) |
+ |% |
+ |\\documentclass{article} |
+ |\\begin{document} |
+ | |
+ |\\end{document} |
+ | |
+ | |
+ | -:**- *Elisp hyperlinks* All L1 (Fundamental) |
+ |_____________________________________________________________________|
+
+
+ 4) Execute the line with the \"(ee-copy-rest ...)\". You should get this -
+ the window on the right is visiting the file \"/tmp/foo.tex\":
+
+ ______________________________________________________________________
+ |# (find-latex-links \"/tmp/foo\") | |
+ |# (find-eev-quick-intro \"`find-lat| |
+ |# (ee-copy-rest 1 '(find-fline \"/t| |
+ | | |
+ |% (defun c () (interactive) (find-| |
+ |% (defun d () (interactive) (find-| |
+ |% (defun e () (interactive) (find-| |
+ |% | |
+ |\\documentclass{article} | |
+ |\\begin{document} | |
+ | | |
+ |\\end{document} | |
+ | | |
+ | | |
+ | -:**- *Elisp hyperlinks* All L| -:**- foo.tex All L9 |
+ |_(Copied 8 lines to the kill ring - use C-y to paste)________________|
+
+
+ 5) Go to the window on the right and type `M-y'. You should get this,
+
+ ______________________________________________________________________
+ |# (find-latex-links \"/tmp/foo\") |% (defun c () (interactive) (find-|
+ |# (find-eev-quick-intro \"`find-lat|% (defun d () (interactive) (find-|
+ |# (ee-copy-rest 1 '(find-fline \"/t|% (defun e () (interactive) (find-|
+ | |% |
+ |% (defun c () (interactive) (find-|\\documentclass{article} |
+ |% (defun d () (interactive) (find-|\\begin{document} |
+ |% (defun e () (interactive) (find-| |
+ |% |\\end{document} |
+ |\\documentclass{article} | |
+ |\\begin{document} | |
+ | | |
+ |\\end{document} | |
+ | | |
+ | | |
+ | -:**- *Elisp hyperlinks* All L| -:**- foo.tex All L9 |
+ |_____________________________________________________________________|
+
+ and you can now save the file foo.tex (hint: use `C-x C-s'!),
+ execute the three defuns for `c', `d', and `e', and jump to
+ \"/tmp/foo.tex\" from anywhere with `M-x e'.
+
+
+
+
+
+8. Anchors
+==========
+See (old version): (find-anchors-intro)
+
+
+8.1. Introduction: `to'
+-----------------------
+A hyperlink like
+
+ (to \"foo\")
+
+jumps to the first occurrence of the string \"�foo�\" in the
+current buffer. The function that wraps a string in `��'s is
+called `ee-format-as-anchor', and the sexp `(to \"foo\")'
+is equivalent the second sexp below:
+
+ (ee-format-as-anchor \"foo\")
+ (ee-goto-position (ee-format-as-anchor \"foo\"))
+
+We will call strings in `��'s _anchors_, and we will say
+that `(to \"foo\")' jumps \"to the anchor `foo'\". The string
+inside a `��'s is called a _tag_.
+
+In a situation like this,
+
+ �one� (to \"two\")
+ �two� (to \"three\")
+ �three� (to \"four\")
+ �four� (to \"one\")
+
+we have four anchors, and typing `M-e' at the line with the
+anchor \"one\" takes us to the line with the anchor \"two\",
+typing `M-e' at the line with the anchor \"two\" takes us to the
+line with the anchor \"three\", typing `M-e' again takes us to
+the line with the anchor \"four\", and typing `M-e' again takes
+us back to the line with the anchor \"one\". In a situation like
+this we say that the anchors \"one\", \"two\", \"three\", and
+\"four\" _point to one another_.
+
+In a case like this,
+
+ �.five� (to \"five\")
+ �five� (to \".five\")
+
+where the names of two anchors pointing to one another differ by
+an initial dot, we will say that the anchor \".five\" is the
+\"index anchor\", and the anchor \"five\" is the \"section
+anchor\"; and one way to create an index for a file is to group
+all the index anchors together. For an example, see:
+
+ (find-eev \"eev-intro.el\" \".find-eev-intro\")
+
+
+
+8.2. Creating anchors by hand
+-----------------------------
+One way to type the chars `�' and `�' is with `C-x 8 <' and
+`C-x 8 >'. Try:
+
+ (eek \"RET C-x 8 < t a g C-x 8 >\")
+
+
+
+
+8.3. Creating index/section anchor pairs
+----------------------------------------
+Use `M-A' (`eewrap-anchor'). Note that this has been briefly
+mentioned here:
+
+ (find-wrap-intro \"All wrapping functions\")
+
+It will convert a line with a syntax like
+
+ comment-prefix <anchor-name>
+
+into:
+
+ comment-prefix �.anchor-name� (to \"anchor-name\")
+ comment-prefix �anchor-name� (to \".anchor-name\")
+
+where comment-prefix is any string and anchor-name is a string
+without `<>'s. Note that the `<>'s, which are easy to type, are
+converted into `��'s, which are harder.
+
+
+
+
+
+
+
+\(To be continued...)
" pos-spec-list)))
+;; end of defun
+
;; (find-eev-quick-intro)
diff --git a/eev-pdflike.el b/eev-pdflike.el
index 76fa18c..7df0197 100644
--- a/eev-pdflike.el
+++ b/eev-pdflike.el
@@ -227,6 +227,7 @@
(defalias 'find-djvupage
'find-djvu-page)
(defun find-djvu-page (fname &optional page &rest rest)
+ (ee-find-djvu-cleanup fname)
(find-bgprocess (ee-find-djvu-page fname page)))
(defvar ee-find-djvu-page-options '())
(defun ee-find-djvu-page (fname &optional page)
@@ -245,6 +246,9 @@
(find-djvu-page {(ee-pp0 fname)} page))
") (ee-code-pdftext-rest rest)))
+(defun ee-find-djvu-cleanup (&optional fname)
+ "A hack: clean up djview's 'recentFiles=' line in the config file if
needed.")
+
(code-brfile 'find-djvu-page :local 'brdjvul :dired 'brdjvud)
diff --git a/eev-tlinks.el b/eev-tlinks.el
index 87b8dde..e047581 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -1,6 +1,6 @@
;;; eev-tlinks.el --- hyperlinks to temporary buffers generated by templates
-;; Copyright (C) 2013,2014 Free Software Foundation, Inc.
+;; Copyright (C) 2013,2014,2016,2017 Free Software Foundation, Inc.
;;
;; This file is (not yet?) part of GNU eev.
;;
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2014oct09
+;; Version: 2017abr29
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-tlinks.el>
@@ -56,6 +56,9 @@
;; �.find-git-links� (to "find-git-links")
;; �.find-netcat-test-links� (to "find-netcat-test-links")
;; �.find-eev-video-links� (to "find-eev-video-links")
+;;
+;; �.find-latex-links� (to "find-latex-links")
+
(require 'eev-env)
@@ -525,33 +528,45 @@ sudo dpkg -i *.deb
;;; |_|
;;
;; �find-eev-update-links� (to ".find-eev-update-links")
-;; (find-find-links-links "<none>" "eev-update" "dir")
;; A test: (find-eev-update-links)
-(defun find-eev-update-links (&optional dir &rest pos-spec-list)
+(defun find-eev-update-links (&optional dir script &rest pos-spec-list)
"Visit a temporary buffer with scripts for installing and updating eev."
(interactive)
(setq dir (or dir ee-eevdir))
+ (setq script (or script "~/e"))
(apply 'find-elinks
- `((find-eev-update-links ,dir)
- (find-eev-update-links "/tmp/eev/")
- (find-eev-update-links "~/eev/")
- (find-eev-update-links "{dir}")
+ `((find-eev-update-links ,dir ,script)
+ (find-eev-update-links "/tmp/eev/" ,script)
+ (find-eev-update-links "~/eev2/" ,script)
+ (find-eev-update-links "~/eev/" ,script)
+ (find-eev-update-links "{dir}" "{script}")
+ (find-eev-update-links)
,(ee-template0 "\
-#
-# In most \"*Elisp hyperlinks\" buffers the top sexp can be used
-# to re-generate the buffer, and it may be followed by other
-# similar sexps that re-generate the buffer using different
-# parameters in the templates.
-#
-# Try the top sexps above, and also see:
-# (find-links-intro)
-# (find-eev \"eev-readme.el\")
+# Download , unpack and create a script \"~/e\"
+# ============================================
+# See: (find-eev-quick-intro \"1. Installing eev\")
+
+{
+ rm -Rv {dir}
+ mkdir {dir}
+ cd {dir}
+ rm -v eev2.tgz
+ wget http://angg.twu.net/eev-current/eev2.tgz
+ tar -xvzf eev2.tgz
+ {
+ echo '#!/bin/sh'
+ echo 'cd {dir} && emacs -l eev-readme.el --eval=\"(find-eev-quick-intro)\"'
+ } > {script}
+ chmod 755 {script}
+}
+
-# Download / unpack the tarball
-# =============================
+
+# Download / unpack the tarball (an older way)
+# ============================================
# See: (find-eepitch-intro)
# (find-eev \"eev-readme.el\")
@@ -1046,8 +1061,12 @@ Example:
(find-youtubedl-links ,ee-youtubedl-dir3 nil ,hash nil ,stem)
(find-youtubedl-links ,ee-youtubedl-dir4 nil ,hash nil ,stem)
(find-efunction 'find-youtubedl-links)
+ ;;
;; (find-youtubedl-links ee-youtubedl-dir ,title ,hash ,ext- ,stem)
;; (setq ee-youtubedl-dir ,ee-youtubedl-dir)
+ ""
+ (find-ydbgrep ,(format "grep --color -nH -e %s db.lua" hash))
+ ;;
;; Body:
""
,(ee-template0 "\
@@ -1064,7 +1083,7 @@ cd {dir}
{ee-youtubedl-command} 'http://www.youtube.com/watch?v={hash}'
{ee-youtubedl-command} -F 'http://www.youtube.com/watch?v={hash}'
{ee-youtubedl-command} -f 18 'http://www.youtube.com/watch?v={hash}'
-{ee-youtubedl-command} -f 18 --restrict-filenames --write-thumbnail
'http://www.youtube.com/watch?v={hash}'
+{ee-youtubedl-command} -f 18 --restrict-filenames --all-subs
'http://www.youtube.com/watch?v={hash}'
# (find-es \"video\" \"youtube-dl\")
# (find-fline \"{dir}\" \"{hash}\")
@@ -1486,6 +1505,43 @@ echo 'http://angg.twu.net/eev-videos/{anggstem}.mp4'
>> ~/.psne.log
+;;; __ _ _ _ _ _ _ _
+;;; / _(_)_ __ __| | | | __ _| |_ _____ __ | (_)_ __ | | _____
+;;; | |_| | '_ \ / _` |_____| |/ _` | __/ _ \ \/ /____| | | '_ \| |/ / __|
+;;; | _| | | | | (_| |_____| | (_| | || __/> <_____| | | | | | <\__ \
+;;; |_| |_|_| |_|\__,_| |_|\__,_|\__\___/_/\_\ |_|_|_| |_|_|\_\___/
+;;;
+;; �find-latex-links� (to ".find-latex-links")
+
+(defun find-latex-links (&optional stem &rest pos-spec-list)
+"Visit a temporary buffer containing a template for creating a LaTeX document."
+ (interactive)
+ (setq stem (or stem "{stem}"))
+ (let ((stem- (file-name-nondirectory stem)))
+ (apply 'find-elinks
+ `((find-latex-links ,stem ,@pos-spec-list)
+ ;; Convention: the first sexp always regenerates the buffer.
+ ;; (find-efunction 'find-latex-links)
+ (find-eev-quick-intro "`find-latex-links'")
+ (ee-copy-rest 1 '(find-fline ,(concat stem ".tex")))
+ ""
+ ,(ee-template0 "\
+% (defun c () (interactive) (find-sh \"pdflatex {stem-}.tex\"))
+% (defun d () (interactive) (find-pdf-page \"{stem}.pdf\"))
+% (defun e () (interactive) (find-fline \"{stem}.tex\"))
+%
+\\documentclass{<}article{>}
+\\begin{<}document{>}
+
+\\end{<}document{>}")
+ )
+ pos-spec-list)))
+
+;; Tests: (find-latex-links)
+;; (find-latex-links "/tmp/foo")
+
+
+
(provide 'eev-tlinks)
diff --git a/eev-wrap.el b/eev-wrap.el
index ec231bf..d5ce69a 100644
--- a/eev-wrap.el
+++ b/eev-wrap.el
@@ -1,8 +1,8 @@
;;; eev-wrap.el --- wrap the current line into a hyperlink
-;; Copyright (C) 2013 Free Software Foundation, Inc.
+;; Copyright (C) 2013,2016 Free Software Foundation, Inc.
;;
-;; This file is (not yet?) part of GNU eev.
+;; This file is part of GNU eev.
;;
;; GNU eev is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2013dec10
+;; Version: 2016sep23
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-wrap.el>
@@ -174,9 +174,11 @@ have to run an \"undo\"."
(error "Does not match")))
(defun ee-wrap-anchor0 (prefix anchor)
"An internal function used by `ee-wrap-anchor'."
- (ee-template0 "\
+ (ee-template0 (ee-tolatin1 "\
{prefix}�.{anchor}�\t(to \"{anchor}\")
-{prefix}�{anchor}� (to \".{anchor}\")"))
+{prefix}�{anchor}� (to \".{anchor}\")")))
+
+
;;; __ __ ____ _ _
@@ -237,16 +239,28 @@ have to run an \"undo\"."
;;; |_| |_| \___/(_) \___|\___|/ |\__,_|_| |_| |_| .__/
;;; |__/ |_|
;;
-;; See: (find-eejump-intro "Producing `eejump-nnn's and `eejump-nnn*'s")
+;; See: (find-eev-quick-intro "7.1. eejump")
+;; (find-eev-quick-intro "7.1. eejump" "meta-uppercase-j")
+;; Old: (find-eejump-intro "Producing `eejump-nnn's and `eejump-nnn*'s")
(define-key eev-mode-map "\M-J" 'eewrap-eejump)
(defun eewrap-eejump () (interactive)
(ee-this-line-wrapn 2 'ee-wrap-eejump))
(defun ee-wrap-eejump (n sexp)
"An internal function used by `eewrap-eejump'."
- (if (equal sexp "")
- (ee-template0 "(defun eejump-{n}* () (find-efunction 'eejump-{n}*))")
- (ee-template0 "(defun eejump-{n} () {sexp})")))
+ (if (string-match-p "^[0-9]+$" n)
+ (if (equal sexp "")
+ (ee-template0 "(defun eejump-{n}* () (find-efunction 'eejump-{n}*))")
+ (ee-template0 "(defun eejump-{n} () {sexp})"))
+ (ee-template0 "(defun {n} () (interactive) {sexp})")))
+;;
+;; Old:
+;; (defun ee-wrap-eejump (n sexp)
+;; "An internal function used by `eewrap-eejump'."
+;; (if (equal sexp "")
+;; (ee-template0 "(defun eejump-{n}* () (find-efunction 'eejump-{n}*))")
+;; (ee-template0 "(defun eejump-{n} () {sexp})")))
+
;;; __ __ __ __
- [elpa] externals/eev 655f894 23/64: Added a "$*" to the shell script "~/eev"., (continued)
- [elpa] externals/eev 655f894 23/64: Added a "$*" to the shell script "~/eev"., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 9f22dff 14/64: Added `find-eev-quick-intro'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev cca8307 09/64: `find-here-links' (code and docs), Stefan Monnier, 2019/04/07
- [elpa] externals/eev 5c4799d 12/64: Small fixes in `find-*-intro' functions, Stefan Monnier, 2019/04/07
- [elpa] externals/eev 0b2c4ac 07/64: `find-here-links', Stefan Monnier, 2019/04/07
- [elpa] externals/eev a0d3da0 33/64: Now the `find-xxx-intro' buffers are fontified., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 8601bc8 28/64: Small changes in eev-brxxx.el, Stefan Monnier, 2019/04/07
- [elpa] externals/eev c920947 38/64: Part of eev-plinks.el was commented out by accidented; fixed that., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 244f47a 34/64: Made eev-intro.el require info.el., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 95052ba 55/64: Added several fields to eev-pkg.el., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 3950e1e 16/64: First commit in two years; `find-eev-quick-intro', `to-latin1', and lots more,
Stefan Monnier <=
- [elpa] externals/eev eee817f 56/64: Added a README (for the ELPA package)., Stefan Monnier, 2019/04/07
- [elpa] externals/eev e0d1bf1 44/64: Added some sections to `find-escripts-intro'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev d671913 61/64: Rewrote `ee-code-c-d-rest'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 3baac40 43/64: Added some sections to `find-escripts-intro'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 2dadb94 52/64: Added `find-pdftools-page'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev de74bf9 35/64: Added lots of comments., Stefan Monnier, 2019/04/07
- [elpa] externals/eev bfd11b4 47/64: Added some sections to `find-escripts-intro', Stefan Monnier, 2019/04/07
- [elpa] externals/eev 082a9f4 42/64: Changes in parts of `find-eev-intro' and `find-escripts-intro'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev e4d30ff 39/64: Rewrote parts of `find-escripts-intro' and `find-links-intro'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev f974ef7 37/64: Added lots of comments to eev-plinks.el., Stefan Monnier, 2019/04/07