[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eev e836949 10/10: Merge remote-tracking branch 'eev/UT
From: |
Stefan Monnier |
Subject: |
[elpa] externals/eev e836949 10/10: Merge remote-tracking branch 'eev/UTF-8' into externals/eev |
Date: |
Tue, 25 Jun 2019 00:05:11 -0400 (EDT) |
branch: externals/eev
commit e836949361a97dc2465d327ed4471d539baf6135
Merge: 3c15e4b 5b27f53
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
Merge remote-tracking branch 'eev/UTF-8' into externals/eev
---
ChangeLog | 70 ++++++++
VERSION | 4 +-
eev-beginner.el | 2 +-
eev-blinks.el | 6 +-
eev-elinks.el | 146 ++++++++-------
eev-eval.el | 19 +-
eev-intro.el | 543 +++++++++++++++++++++++++++++++++++++++++++++-----------
eev-mode.el | 4 +-
eev-pdflike.el | 22 ++-
eev-plinks.el | 43 +++++
eev-tlinks.el | 13 +-
11 files changed, 690 insertions(+), 182 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 21581bc..1e47737 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,73 @@
+2019-06-24 Eduardo Ochs <address@hidden>
+
+ * eev-plinks.el (find-urlretrieve00, ee-urlretrieve-3)
+ (find-urlretrieve0, find-urlretrieve): new functions.
+
+ * eev-elinks.el (find-here-links-3): ask if the user wants to
+ overwrite `ee-window-configuration-before-M-h-M-3'.
+
+ * eev-intro.el (find-here-links-intro): added some figures.
+
+ * eev-pdflike.el (ee-find-pdf-text, ee-find-pdftotext-text)
+ (ee-find-texworkspdf-page): added the missing ","s.
+
+2019-06-23 Eduardo Ochs <address@hidden>
+
+ * eev-elinks.el (ee-find-eboundkey-links): reordered the links.
+ (ee-find-efunction-links): reordered the links.
+ (find-efunction-links): reordered the links.
+ (find-elongkey-links): reordered the links.
+ (find-ekey-links): reordered the links.
+
+ * eev-intro.el (find-eev-quick-intro): new section: "4.2.
+ `find-ekey-links' and friends".
+
+ * eev-beginner.el (eev-beginner): do not bind `M-h M-h' to
+ `find-here-links-beginner'.
+
+2019-06-22 Eduardo Ochs <address@hidden>
+
+ * eev-pdflike.el: make `find-pdf-page' use texworks on M$ Windows.
+ (ee-pdftotext-program, ee-texworks-program): new variables.
+
+2019-06-21 Eduardo Ochs <address@hidden>
+
+ * eev-intro.el (find-here-links-intro): new function.
+ (find-emacs-keys-intro): added references to `M-h M-3', `M-h M-w',
+ and `M-h M-1'.
+
+ * eev-elinks.el (find-here-links-3): new function.
+ (find-here-links-1): new function.
+ (ee-window-configuration-before-M-h-M-3): new variable.
+ (ee-find-here-links0): added a reference to `find-here-links-3'.
+
+ * eev-mode.el (eev-mode-map-set): added bindings to `M-h M-1' and
+ `M-h M-3' (`find-here-links-1' and `find-here-links-3').
+
+2019-06-17 Eduardo Ochs <address@hidden>
+
+ * eev-beginner.el (eev-beginner): bind `M-h M-h' to
+ `find-here-links-beginner'.
+
+ * eev-blinks.el (ee-find-eejumps-header): added examples.
+
+2019-06-16 Eduardo Ochs <address@hidden>
+
+ * eev-intro.el (find-emacs-keys-intro): list `M-h M-k', `M-h M-f',
+ and `M-h M-p' among the basic keys of eev.
+ (find-links-intro): Rewrote the section "The first line
+ regenerates the buffer".
+
+ * eev-eval.el (ee-eval-sexp-eol): changes in the docstring.
+
+2019-06-12 Eduardo Ochs <address@hidden>
+
+ * eev-tlinks.el (find-latex-links): added more links to the
+ tutorial.
+
+ * eev-elinks.el (find-code-pdf-links): made it generate a code-c-d
+ besides the code-pdf pair; added another link to the tutorial.
+
2019-06-10 Eduardo Ochs <address@hidden>
* eev-elinks.el (find-code-pdf-links): new function.
diff --git a/VERSION b/VERSION
index d4bd991..187a3e5 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Mon Jun 10 05:57:06 GMT 2019
-Mon Jun 10 02:57:06 -03 2019
+Tue Jun 25 00:31:30 GMT 2019
+Mon Jun 24 21:31:30 -03 2019
diff --git a/eev-beginner.el b/eev-beginner.el
index ae0430d..61d5c2e 100644
--- a/eev-beginner.el
+++ b/eev-beginner.el
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019apr06
+;; Version: 2019jun23
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-beginner.el>
diff --git a/eev-blinks.el b/eev-blinks.el
index 18bad9e..e5c2f6c 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -21,7 +21,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019apr13
+;; Version: 2019jun17
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-blinks.el>
@@ -953,6 +953,10 @@ Hint: install the Debian package \"unicode-data\".")
";; (find-eejumps)
;; See: (find-eev-quick-intro \"7.1. `eejump'\")
;; (find-emacs-keys-intro \"1. Basic keys (eev)\")
+;; For example,
+;; M-1 M-j runs: (find-fline \"~/TODO\")
+;; M-2 M-j runs: (find-emacs-keys-intro)
+;; M-5 M-j runs: (find-eev-quick-intro)
;; Current eejump targets:\n\n")
(defun ee-find-eejumps-body ()
diff --git a/eev-elinks.el b/eev-elinks.el
index 0c399be..b8b07e3 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019jun10
+;; Version: 2019jun24
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-elinks.el>
@@ -75,8 +75,9 @@
;; «.find-color-links» (to "find-color-links")
;; «.find-here-links» (to "find-here-links")
+;; «.find-here-links-beginner» (to "find-here-links-beginner")
+;; «.find-here-links-3» (to "find-here-links-3")
-;; «.find-code-c-d-links» (to "find-code-c-d-links")
;; «.find-code-pdf-links» (to "find-code-pdf-links")
;; «.find-pdf-links» (to "find-pdf-links")
@@ -233,6 +234,8 @@ The buffer is put in Emacs Lisp mode."
(apply 'find-elinks
`((find-efunction-links ',f ,@pos-spec-list)
(eek ,(format "M-h M-f %s" f))
+ (find-eev-quick-intro "4.2. `find-ekey-links' and friends")
+ ""
,@(ee-find-efunction-links f)
)
pos-spec-list))
@@ -241,23 +244,24 @@ The buffer is put in Emacs Lisp mode."
"Return a list of hyperlinks for F (a function symbol).
This is an internal function used by `find-efunction-links' and
`find-ekey-links'."
- `((where-is ',f)
- (describe-function ',f)
- (find-efunctiondescr ',f)
+ `((find-efunctiondescr ',f)
(find-efunction ',f)
(find-efunctionpp ',f)
(find-efunctiond ',f)
- ;; (find-eCfunction ',f) ; obsolete
- (find-estring (documentation ',f))
- (find-estring (documentation ',f t))
- (symbol-file ',f 'defun)
- (find-fline (symbol-file ',f 'defun))
""
,@(if (commandp f)
`((Info-goto-emacs-command-node ',f)
(find-enode "Command Index" ,(format "* %S:" f))
))
(find-elnode "Index" ,(format "* %S:" f))
+ ""
+ (where-is ',f)
+ (symbol-file ',f 'defun)
+ (find-fline (symbol-file ',f 'defun))
+ (find-estring (documentation ',f))
+ (find-estring (documentation ',f t))
+ (describe-function ',f)
+ ;; (find-eCfunction ',f) ; obsolete
))
@@ -376,14 +380,15 @@ See: (find-eev \"eev-elinks.el\" \"find-ekey-links\")"
(apply 'find-elinks
`((find-ekey-links ,key ,@pos-spec-list)
;; Convention: the first sexp always regenerates the buffer.
- (find-ekey-links ,key)
- (eek ,(format "M-h M-k %s" longkey))
- (eek ,(format "M-h M-k %s" longkey+))
- (find-efunctiondescr ',f)
- ""
(find-elongkey-links ,longkey)
(find-elongkey-links ,longkey+)
(find-efunction-links ',f)
+ (eek ,(format "M-h M-k %s" longkey))
+ (eek ,(format "M-h M-k %s" longkey+))
+ (eek ,(format "M-h M-f %s" f))
+ ;; (find-efunctiondescr ',f)
+ ""
+ (find-eev-quick-intro "4.2. `find-ekey-links' and friends")
""
,@(ee-find-eboundkey-links key f)
)
@@ -402,6 +407,7 @@ See `read-kbd-macro' and `edmacro-mode' for the format."
`((find-elongkey-links ,longkey)
(find-ekey-links ,key)
(find-efunction-links ',f)
+ (find-eev-quick-intro "4.2. `find-ekey-links' and friends")
""
,@(ee-find-eboundkey-links key f)
)
@@ -412,23 +418,24 @@ See `read-kbd-macro' and `edmacro-mode' for the format."
"From KEY and its binding, F, produce a list of hyperlinks.
This is an internal function used by `find-ekey-links' and
`find-elongkey-links'."
- `((where-is ',f)
- (describe-function ',f)
- (find-efunctiondescr ',f)
+ `((find-efunctiondescr ',f)
+ (find-ekeydescr ,key)
(find-efunction ',f)
(find-efunctionpp ',f)
(find-efunctiond ',f)
- (find-estring (documentation ',f))
- (find-estring (documentation ',f t))
""
- (describe-key ,key)
- (describe-key-briefly ,key)
- (find-ekeydescr ,key)
(Info-goto-emacs-key-command-node ,key)
(Info-goto-emacs-command-node ',f)
(find-enode "Command Index" ,(format "* %S:" f))
(find-elnode "Index" ,(format "* %S:" f))
""
+ (describe-key-briefly ,key)
+ (find-estring (documentation ',f))
+ (find-estring (documentation ',f t))
+ (describe-key ,key)
+ (describe-function ',f)
+ ""
+ (where-is ',f)
(key-description ,key)
(format-kbd-macro ,key)
(format-kbd-macro ,key t)
@@ -937,42 +944,14 @@ See: (find-pdf-like-intro)
(setq page (or page (ee-current-page)))
(setq bufname (or bufname (buffer-name)))
(setq offset (or offset ee-page-offset))
- (let* ((c ee-page-c)
- (fname ee-page-fname)
- (find-cpage (ee-intern "find-%spage" c))
- (find-ctext (ee-intern "find-%stext" c))
- (kill (or (ee-last-kill) ""))
- (page- (- page offset))
- )
- ;;
- '(apply 'find-elinks `(
- (find-pdflike-page-links ,page ,bufname ,offset ,@rest)
- (find-efunction 'find-pdflike-page-links)
- ""
- (,find-cpage ,page)
- (,find-ctext ,page)
- (,find-cpage (+ ,offset ,page-))
- (,find-ctext (+ ,offset ,page-))
- ""
- (,find-cpage ,page ,kill)
- (,find-ctext ,page ,kill)
- (,find-cpage (+ ,offset ,page-) ,kill)
- (,find-ctext (+ ,offset ,page-) ,kill)
- ""
- (code-pdf-page ,c ,fname)
- (code-pdf-text ,c ,fname ,offset)
- ,(ee-HS bufname)
- ) rest)
- ;;
- (apply 'find-elinks `(
- (find-pdflike-page-links ,page ,bufname ,offset ,@rest)
- (find-efunction 'find-pdflike-page-links)
- (find-eev-quick-intro "10.4. Generating short hyperlinks to PDFs")
- (find-eev-quick-intro "11.1. `find-pdf-links'")
- ""
- ,@(ee-pdflike-page-links page bufname offset)
- ) rest)
- ))
+ (apply 'find-elinks `(
+ (find-pdflike-page-links ,page ,bufname ,offset ,@rest)
+ ;; (find-efunction 'find-pdflike-page-links)
+ (find-eev-quick-intro "10.4. Generating short hyperlinks to PDFs")
+ (find-eev-quick-intro "11.1. `find-pdf-links'")
+ ""
+ ,@(ee-pdflike-page-links page bufname offset)
+ ) rest))
;; (find-pdflike-page-links)
;; (find-angg ".emacs.papers" "kopkadaly")
@@ -1259,6 +1238,7 @@ This needs a temporary directory; see:
(find-prepared-intro)"
`(,(ee-H "See: ")
(find-eev-quick-intro "4.1. `find-here-links'")
(find-emacs-keys-intro "1. Basic keys (eev)" "M-h M-h")
+ (find-here-links-intro "4. `find-here-links-3'")
))
;; (find-find-links-links "\\M-h" "here" "")
@@ -1280,20 +1260,49 @@ This needs a temporary directory; see:
(find-prepared-intro)"
+;; «find-here-links-beginner» (to ".find-here-links-beginner")
;; This is a hack for beginners that is explained in a tutorial. See:
;; (find-refining-intro "4. A tip for beginners")
;; (find-refining-intro "4. A tip for beginners" "find-here-links-beginner")
;;
-(defun find-here-links-3 ()
- "A variant of `find-here-links' that creates a three-window setting."
- (interactive "P")
- (find-wset "13_o2_o_coo" nil '(find-here-links) '(eejump-1)))
-
(defun find-here-links-beginner (&optional arg)
"A variant of `find-here-links' that may create a three-window setting."
(interactive "P")
(if arg (find-here-links-3) (find-here-links)))
+;; «find-here-links-3» (to ".find-here-links-3")
+;; See: (find-here-links-intro "4. `find-here-links-3'")
+;; (find-here-links-intro "5. `find-here-links-1'")
+;;
+(defvar ee-window-configuration-before-M-h-M-3 nil)
+
+(defun find-here-links-3 ()
+ "A variant of `find-here-links' that creates a three-window setting.
+Before creating the three windows this function tries to save the
+current window configuration to the variable
+`ee-window-configuration-before-M-h-M-3', but if that variable is
+not nil we abort instead of overwriting it.
+See: (find-here-links-intro \"4. `find-here-links-3'\")"
+ (interactive)
+ (if ee-window-configuration-before-M-h-M-3
+ (let ((overwrite
+ (yes-or-no-p "Overwrite `ee-window-configuration-before-M-h-M-3'?
")))
+ (if (not overwrite)
+ (error))))
+ (setq ee-window-configuration-before-M-h-M-3
+ (current-window-configuration))
+ (find-wset "13_o2_o_coo" nil '(find-here-links) '(eejump-1)))
+
+(defun find-here-links-1 ()
+ "Restore the window configuration before `find-here-links-3'.
+See: (find-here-links-intro \"5. `find-here-links-1'\")"
+ (interactive)
+ (set-window-configuration ee-window-configuration-before-M-h-M-3)
+ (setq ee-window-configuration-before-M-h-M-3 nil))
+
+
+
+
@@ -1304,8 +1313,6 @@ This needs a temporary directory; see:
(find-prepared-intro)"
;;; | _| | | | | (_| |_____| (_| (_) | (_| | __/_ _\_____| | | | | | <\__
\
;;; |_| |_|_| |_|\__,_| \___\___/ \__,_|\___| \/ |_|_|_|
|_|_|\_\___/
;;;
-;; «find-code-c-d-links» (to ".find-code-c-d-links")
-
;; «find-code-pdf-links» (to ".find-code-pdf-links")
;; Tests:
;; (find-fline "/usr/local/texlive/2018/texmf-dist/doc/latex/base/")
@@ -1323,10 +1330,15 @@ This needs a temporary directory; see:
(find-prepared-intro)"
;; Convention: the first sexp always regenerates the buffer.
;; (find-efunction 'find-code-pdf-links)
,(ee-template0 "\
-;; See: (find-eev-quick-intro \"9.3. Hyperlinks to PDF files\")
+;; See: (find-eev-quick-intro \"9.1. `code-c-d'\")
+;; (find-eev-quick-intro \"9.3. Hyperlinks to PDF files\")
;; (find-eev-quick-intro \"9.4. Shorter hyperlinks to PDF files\")
+;; (find-eev-quick-intro \"11.1. `find-pdf-links'\")
;; (find-fline {(ee-S (file-name-directory fname))})
+\(code-c-d \"{c}\" \"{(file-name-directory fname)}\")
+;; \(find-{c}file \"\")
+
;; (find-pdf-page \"{fname}\")
;; (find-pdf-text \"{fname}\")
\(code-pdf-page \"{c}\" \"{fname}\")
diff --git a/eev-eval.el b/eev-eval.el
index 8e4334e..ccadbcf 100644
--- a/eev-eval.el
+++ b/eev-eval.el
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019mar02
+;; Version: 2019jun16
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-eval.el>
@@ -202,7 +202,22 @@ other: set EE-ARG to ARG and eval (ee-last-sexp)."
(defun ee-eval-sexp-eol (&optional arg)
"Go to the end of line, then run `ee-eval-last-sexp'.
-See: (find-eval-intro)"
+By default, evaluate sexp before eol, and print value in minibuffer.
+This is eev's variant of `C-e C-x C-e', and it can behave in
+several different ways depending on the prefix argument ARG.
+See: (find-eev-quick-intro \"`M-0 M-e'\")
+
+If ARG is:
+ nil: evaluate the sexp with `debug-on-error' turned off
+ 0: highlight the sexp temporarily
+ 1: show the sexp as a string
+ 2: show the target of the sexp in another window
+ 3: same, but also switch to the new window
+ 4: evaluate the sexp in debug mode
+ 5: run the sexp with `debug-on-error' turned on
+ 8: eval then pretty-print the result in another buffer
+ 9: a hack for testing `call-interactively'
+other: set EE-ARG to ARG and eval (ee-last-sexp)."
(interactive "P")
(end-of-line)
(ee-eval-last-sexp arg))
diff --git a/eev-intro.el b/eev-intro.el
index 6ed227e..d897e95 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019jun10
+;; Version: 2019jun24
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-intro.el>
@@ -62,6 +62,7 @@
;; «.find-emacs-keys-intro» (to "find-emacs-keys-intro")
;; «.find-eev-install-intro» (to "find-eev-install-intro")
;; «.find-eev-intro» (to "find-eev-intro")
+;; «.find-here-links-intro» (to "find-here-links-intro")
;; «.find-refining-intro» (to "find-refining-intro")
;;
;; «.find-eval-intro» (to "find-eval-intro")
@@ -261,6 +262,7 @@ Actually go to: (find-eev \"eev-intro.el\"
\"find-foo-intro\" (ee-last-kill))."
\(Re)generate: (find-eev-quick-intro)
Source code: (find-efunction 'find-eev-quick-intro)
More intros: (find-emacs-keys-intro)
+ (find-here-links-intro)
(find-eev-intro)
(find-links-conv-intro)
(find-escripts-intro)
@@ -268,7 +270,7 @@ More intros: (find-emacs-keys-intro)
(find-links-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
The quickest way to open or recreate this is with `M-5 M-j'.
@@ -469,26 +471,30 @@ 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)--|
- |___________________________________________________________|
+ ____________________________________________________________________
+ |# (find-efunction-links 'find-file) |
+ |# (eek \"M-h M-f find-file\") |
+ |# (find-eev-quick-intro \"4.2. `find-ekey-links' and friends\") |
+ | |
+ |# (find-efunctiondescr 'find-file) |
+ |# (find-efunction 'find-file) |
+ |# (find-efunctionpp 'find-file) |
+ |# (find-efunctiond 'find-file) |
+ | |
+ |# (Info-goto-emacs-command-node 'find-file) |
+ |# (find-enode \"Command Index\" \"* find-file:\") |
+ |# (find-elnode \"Index\" \"* find-file:\") |
+ | |
+ |# (where-is 'find-file) |
+ |# (symbol-file 'find-file 'defun) |
+ |# (find-fline (symbol-file 'find-file 'defun)) |
+ |# (find-estring (documentation 'find-file)) |
+ |# (find-estring (documentation 'find-file t)) |
+ |# (describe-function 'find-file) |
+ | |
+ | |
+ | -:**- *Elisp hyperlinks* All L1 (Fundamental eev) ----------|
+ |____________________________________________________________________|
@@ -507,25 +513,32 @@ 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) -|
- |____________________________________________________________|
+ ___________________________________________________________________
+ |# See: |
+ |# (find-eev-quick-intro \"4.1. `find-here-links'\") |
+ |# (find-emacs-keys-intro \"1. Basic keys (eev)\" \"M-h M-h\") |
+ |# (find-here-links-intro \"4. `find-here-links-3'\") |
+ | |
+ |# http://angg.twu.net/eev-intros/find-eev-quick-intro.html |
+ |# (find-eev-quick-intro) |
+ | |
+ | |
+ | -:**- *Elisp hyperlinks* All L1 (Fundamental eev) --------|
+ |___________________________________________________________________|
The elisp hyperlink
# (find-eev-quick-intro)
-opens this tutorial.
+at the end opens this tutorial.
-Cutting and pasting is explained briefly in section 5.2.
+The best way to learn how to create very quickly these
+\"hyperlinks to things we saw or visited\" and to copy them to
+our notes is explained in a separate tutorial:
+
+ (find-here-links-intro)
+
+Cutting and pasting is explained briefly in section 5.2, below.
A way to go quickly to \"~/TODO\" is explained in section 7.1.
A way to \"refine\" hyperlinks to make them more precise is
explained here:
@@ -535,11 +548,68 @@ explained here:
+4.2. `find-ekey-links' and friends
+----------------------------------
+Emacs is huge and you will probably want to save in your notes
+many links about keys and functions that look interesting - using
+`M-2 M-j' from time to time to visit
+
+ (find-emacs-keys-intro)
+
+and learning the keys listed there will not be enough.
+
+Try the eek links below:
+
+ (eek \"M-h M-k C-x 4 0\")
+ (eek \"M-h M-k C-x 4 0 ;; kill-buffer-and-window\")
+ (eek \"M-h M-k C-s\")
+ (eek \"M-h M-k C-s ;; isearch-forward\")
+ (eek \"M-h M-f isearch-forward\")
+
+ (eek \"M-h M-k M-h M-k ;; find-ekey-links\")
+ (eek \"M-h M-k M-h M-f ;; find-efunction-links\")
+
+You will notice that:
+
+ 1. they create temporary buffers with lots of elisp hyperlinks,
+
+ 2. you can \"go back\" from these buffers with `M-k',
+
+ 3. the function name after the \";;\" is a comment and is
+ ignored by Emacs (but is useful for humans),
+
+ 4. you can copy these hyperlinks to your \"~/TODO\",
+
+ 5. the \"M-h M-k\" and \"M-h M-f\" in the beginning are
+ reminders that we can use `M-h M-k <key-sequence>' and `M-h
+ M-f <function-name>' to create help buffers about other keys
+ and functions,
+
+ 6. some of the hyperlinks use low-level representations for key
+ sequences - you don't need to understand them. An example:
+
+ (find-ekey-links \"\\^X40\")
+
+ 7. for _some_ keys and functions, but not all, the hyperlinks
+ like
+
+ (Info-goto-emacs-key-command-node \"\\C-s\")
+ (Info-goto-emacs-command-node 'isearch-forward)
+ (find-enode \"Command Index\" \"* isearch-forward:\")
+ (find-elnode \"Index\" \"* defun:\")
+
+ that appear near the middle of the elisp hyperlinks buffers,
+ point to relevant points in the Emacs manuals - see the next
+ section.
+
+
+
+
5. Links to Emacs documentation
===============================
Try these links (some of them need the Emacs manuals installed):
- (find-emacs-intro \"Cutting & pasting\")
+ (find-emacs-keys-intro \"Cutting & pasting\")
(find-node \"(emacs)Screen\")
(find-efunctiondescr 'find-file)
(find-efunction-links 'find-file)
@@ -1647,7 +1717,8 @@ the PDF, and type `M-h M-p' (`find-pdf-links'). Try it
here:
The exact action of `M-h M-p' depends on the major mode. If
you're in dired mode then it supposes that you want links to the
-PDF on the current line, including a code-pdf pair, and it runs
+current directory and to the PDF on the current line - including
+a `code-c-d' and a code-pdf pair - and it runs
`find-code-pdf-links'. The first line of the buffer will be
something like:
@@ -1708,7 +1779,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
The quickest way to open or recreate this is with `M-2 M-j'.
@@ -1731,13 +1802,25 @@ The most basic keys of eev are:
<f8> - See: (find-eev-quick-intro \"6. Controlling shell-like programs\")
M-T - See: (find-eev-quick-intro \"6.3. Creating eepitch blocks: `M-T'\")
-The keys for creating \"hyperlinks to here\" and refining them are:
- M-h M-h - `find-here-links'. See: (find-eev-quick-intro \"`M-h M-h'\")
+The beginner's way of creating \"hyperlinks to here\" is with:
+ M-h M-3 - (find-here-links-intro \"4. `find-here-links-3'\")
+ M-h M-1 - (find-here-links-intro \"5. `find-here-links-1'\")
+ M-h M-w - (find-here-links-intro \"6. Copying the hyperlink\" \"M-h M-w\")
+
+The other keys for creating hyperlinks to here and refining them are:
+ M-h M-h - `find-here-links': (find-eev-quick-intro \"4.1.
`find-here-links'\")
M-h M-2 - `ee-duplicate-this-line'. See: (find-eval-intro \"M-h M-2\")
M-h M-y - `ee-yank-pos-spec'. See: (find-eval-intro \"M-h M-y\")
See also: (find-refining-intro \"2. Refining hyperlinks\")
(find-refining-intro \"4. A tip for beginners\")
+Some other keys that create buffers with elisp hyperlinks:
+ M-h M-k - (find-eev-quick-intro \"4.2. `find-ekey-links' and friends\")
+ M-h M-f - (find-eev-quick-intro \"4.2. `find-ekey-links' and friends\")
+ M-h M-p - (find-eev-quick-intro \"11.1. `find-pdf-links'\")
+ See also: (find-links-intro \"5. The first line regenerates the buffer\")
+
+
2. Key sequences and how to abort them
======================================
@@ -1885,7 +1968,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -2002,11 +2085,6 @@ Eev has a git repository at:
https://github.com/edrx/eev.git
-All recent changes are being made at the \"UTF-8\" branch and I
-haven't learned yet how to make the master branch point to
-UTF-8... so if you clone the repository you'll have to do a
-\"checkout UTF-8\" the go to the most recent version.
-
Try this:
(eepitch-shell)
@@ -2016,7 +2094,6 @@ rm -Rfv /tmp/eev2
mkdir /tmp/eev2/
cd /tmp/eev2/ && git clone https://github.com/edrx/eev.git .
cd /tmp/eev2/
-git checkout UTF-8
# (find-gitk \"/tmp/eev2/\")
{
echo '#!/bin/sh'
@@ -2221,7 +2298,7 @@ Main intros: (find-eev-quick-intro)
(find-eev-intro)
Index to the source files: (find-eev \"eev-load.el\")
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
Here is a list of all the available sandbox-y tutorials that
@@ -2232,47 +2309,48 @@ recommended reading order. These are the basic ones:
1. (find-emacs-keys-intro)
2. (find-eev-intro)
3. (find-eev-install-intro)
+ 4. (find-here-links-intro)
+ 5. (find-refining-intro)
These ones explain ideas, conventions, and usage patterns:
- 4. (find-escripts-intro)
- 5. (find-links-conv-intro)
- 6. (find-refining-intro)
+ 6. (find-escripts-intro)
+ 7. (find-links-conv-intro)
These are older and more technical versions of sections of the
eev-quick-intro:
- 7. (find-eval-intro)
- 8. (find-links-intro)
- 9. (find-brxxx-intro)
- 10. (find-eepitch-intro)
- 11. (find-wrap-intro)
- 12. (find-eejump-intro)
- 13. (find-anchors-intro)
- 14. (find-code-c-d-intro)
- 15. (find-pdf-like-intro)
- 16. (find-psne-intro)
+ 8. (find-eval-intro)
+ 9. (find-links-intro)
+ 10. (find-brxxx-intro)
+ 11. (find-eepitch-intro)
+ 12. (find-wrap-intro)
+ 13. (find-eejump-intro)
+ 14. (find-anchors-intro)
+ 15. (find-code-c-d-intro)
+ 16. (find-pdf-like-intro)
+ 17. (find-psne-intro)
These are etcs:
- 17. (find-multiwindow-intro)
- 18. (find-audiovideo-intro)
- 19. (find-rcirc-intro)
- 20. (find-templates-intro)
- 21. (find-videos-intro)
+ 18. (find-multiwindow-intro)
+ 19. (find-audiovideo-intro)
+ 20. (find-rcirc-intro)
+ 21. (find-templates-intro)
+ 22. (find-videos-intro)
These ones explain advanced features that require extra setup:
- 22. (find-prepared-intro)
- 23. (find-bounded-intro)
- 24. (find-channels-intro)
+ 23. (find-prepared-intro)
+ 24. (find-bounded-intro)
+ 25. (find-channels-intro)
These ones are obsolete:
- 25. (find-emacs-intro)
- 26. (find-defun-intro)
+ 26. (find-emacs-intro)
+ 27. (find-defun-intro)
-Item 20 is an index of the (old) video tutorials, with scripts
+Item 22 is an index of the (old) video tutorials, with scripts
for downloading local copies of them and links to important
positions in the videos.
@@ -2347,6 +2425,232 @@ For the full lists of keybindings, see:
+;;; _ _ _ _
+;;; | |__ ___ _ __ ___ | (_)_ __ | | _____
+;;; | '_ \ / _ \ '__/ _ \_____| | | '_ \| |/ / __|
+;;; | | | | __/ | | __/_____| | | | | | <\__ \
+;;; |_| |_|\___|_| \___| |_|_|_| |_|_|\_\___/
+;;;
+;; «find-here-links-intro» (to ".find-here-links-intro")
+;; (find-intro-links "here-links")
+
+(defun find-here-links-intro (&rest pos-spec-list) (interactive)
+ (let ((ee-buffer-name "*(find-here-links-intro)*"))
+ (apply 'find-eintro "\
+\(Re)generate: (find-here-links-intro)
+Source code: (find-efunction 'find-here-links-intro)
+More intros: (find-eev-quick-intro)
+ (find-refining-intro)
+This buffer is _temporary_ and _editable_.
+It is meant as both a tutorial and a sandbox.
+
+
+
+
+1. Alternating between \"task\" and \"notes\"
+=========================================
+In the old days log books were always made of paper, and there
+was nothing automatic in taking notes with them. We would have to
+decide what to write and how to write it, and we would have to
+alternate between the \"task\" and \"taking notes\". After many
+years of practice _some_ people would learn how to take notes
+without distracting themselves much from the task at hand, and
+they would learn how to make their notes at the same time concise
+and readable enough.
+
+Nowadays, with computers, there are _some_ ways to write logs
+automatically - for example, most shells record the commands
+given to them - but the output is of low quality.
+
+Eev takes an intermediate stance between \"notes by hand\"
+and \"automatic notes\". It is possible to do
+\"task\"+\"notes\" with just a few more keystrokes than for
+doing just \"task\", but that requires learning some tricks,
+and having some practice.
+
+
+
+
+2. \"Here\"
+=========
+In this tutorial we will learn the basic technique for creating
+an elisp hyperlink to \"here\" and copying it to our notes.
+\"Here\" means the current Emacs buffer; we saw in the main
+tutorial that elisp hyperlinks like
+
+ (find-eev-quick-intro \"4. Creating Elisp Hyperlinks\")
+ (find-emacs-keys-intro \"3. Cutting & pasting\")
+ (find-fline \"~/\")
+ (find-eevfile \"\")
+ (find-eevfile \"eev-blinks.el\")
+ (find-efunctiondescr 'find-file)
+ (find-enode \"Modes\")
+ (find-elnode \"Defining Functions\" \"(defun foo () 5)\")
+ (find-man \"date\")
+
+open eev tutorials (`find-xxx-intro's), directories, files,
+descriptions of emacs functions, sections of manuals in \"info\"
+format, and manpages. All the elisp hyperlinks above are of the
+kind described in the first paragraphs of this section of the
+main tutorial:
+
+ (find-eev-quick-intro \"3. Elisp hyperlinks\")
+
+They (usually) create a new buffer, and it is possible to \"go
+back\" from that buffer with `M-k' of `M-K':
+
+ (find-eval-intro \"5. Going back\")
+
+
+
+
+3. `find-here-links'
+====================
+Eev has a function, called `find-here-links' and bound to `M-h
+M-h', that is able to distinguish several kinds of \"here\"s.
+When we run it it creates a temporary buffer with lots of elisp
+hyperlinks, and when we have enough practice we can spot in a
+second which of its hyperlinks is the \"hyperlink to here\" that
+we want to copy to our notes.
+
+This tutorial is about a _variant_ of `find-here-links' that is
+more suitable for beginners.
+
+
+
+
+4. `find-here-links-3'
+======================
+Suppose that you are in a buffer with something interesting -
+\"here\" -, and you want to generate a hyperlink to it and copy
+that hyperlink to your notes. Some terminology:
+
+ 1. The target of that hyperlink will be the \"here\" buffer, so
+ let's call the \"here\" buffer the \"target buffer\" from
+ now on.
+
+ 2. `find-here-links' creates a temporary buffer with several
+ elisp hyperlinks - let's call that buffer the \"elinks
+ buffer\".
+
+ 3. Beginners start by putting all their (executable) notes in a
+ single file, \"~/TODO\"; remember that `M-1 M-j' jumps to
+ that file. The \"notes buffer\" is a buffer visiting the
+ file \"~/TODO\".
+
+The key sequence `M-h M-3' saves the current window configuration
+in a variable called `ee-window-configuration-before-M-h-M-3',
+creates a 3-window setting like this,
+
+ _____________________
+ | | |
+ | | elinks |
+ | | buffer |
+ | target |__________|
+ | buffer | |
+ | | notes |
+ | | buffer |
+ |__________|__________|
+
+and puts the cursor at the elinks buffer.
+
+
+
+
+5. `find-here-links-1'
+======================
+After creating the three windows described above we will usually
+want to select a line from the elinks buffer - the right one,
+i.e., the one with a hyperlink to the target buffer - and copy it
+to the notes buffer; the next section explains how to do this.
+
+After copying the hyperlink - or after deciding that we don't
+want to copy it - we want to restore the original window
+configuration that we had before typing `M-h M-3'. We can do that
+by typing `M-h M-1' (`find-here-links-1'); I chose to use the
+suffix \"1\" because in most cases the original window
+configuration has a single window with the target buffer in it,
+and the \"1\" is a reference to this:
+
+ (find-emacs-keys-intro \"6. Windows\" \"C-x 1\")
+
+Note that `M-h M-1' undoes what `M-h M-3' did. In a figure:
+
+ _______________ _____________________ ________________
+ | | | | | | |
+ | | | | elinks | | |
+ | | | | buffer | | |
+ | target | M-h M-3 | target |__________| M-h M-1 | target |
+ | buffer | ------> | buffer | | ------> | buffer |
+ | | | | notes | | |
+ | | | | buffer | | |
+ |_______________| |__________|__________| |________________|
+
+
+
+
+6. Copying the hyperlink
+========================
+When you are a beginner, the easiest way to copy an elisp
+hyperlink from the elinks buffer to the notes buffer is to put
+the cursor on the line with the hyperlink, then type `M-h M-w'
+(`ee-copy-this-line-to-kill-ring'), and then go to the notes
+buffer and copy it to there with `C-y' or with the entry \"Edit
+-> Paste\" in the menu bar. Note that in the three-window setting
+copying a hyperlink from the elinks buffer to the notes buffer
+means copying it from the upper right window to the lower right
+window:
+
+ _____________________
+ | | |
+ | | elinks |
+ | | buffer |
+ | target |____||____|
+ | buffer | \\/ |
+ | | notes |
+ | | buffer |
+ |__________|__________|
+
+When you become a slightly more advanced user the easiest way is
+the one with the key sequences described here:
+
+ (find-eev-quick-intro \"5.2. Cutting and pasting\")
+
+
+
+
+7. Refining your hyperlinks
+===========================
+After learning the technique above, that was based on the keys:
+
+ M-h M-3 -- find-here-links-3
+ M-h M-w -- ee-copy-this-line-to-kill-ring
+ C-y -- yank, i.e., paste; see: (find-enode \"Kill Ring\")
+ M-h M-1 -- find-here-links-1
+
+The next steps are to learn how:
+
+ a) Refine hyperlinks. See:
+
+ (find-refining-intro \"1. Pos-spec-lists\")
+ (find-refining-intro \"2. Refining hyperlinks\")
+
+ b) Work with a single window. See:
+
+ (find-refining-intro \"3. Three buffers\")
+
+ c) Use other keys that create buffers with hyperlinks. See:
+
+ (find-emacs-keys-intro \"Some other keys that create\")
+
+
+" pos-spec-list)))
+
+;; (find-here-links-intro)
+
+
+
+
;;; __ _ _
;;; _ __ ___ / _(_)_ __ (_)_ __ __ _
;;; | '__/ _ \ |_| | '_ \| | '_ \ / _` |
@@ -2365,12 +2669,14 @@ Source code: (find-efunction 'find-refining-intro)
More intros: (find-eev-quick-intro)
(find-eval-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
+
-(find-eval-intro \"9. Producing and refining hyperlinks\")
-(find-emacs-keys-intro \"and refining them\")
-(find-eval-intro \"6. Refining hyperlinks\")
+This tutorial supposes that you already know how to
+create \"hyperlinks to here\" - see:
+ (find-here-links-intro)
+ (find-emacs-keys-intro \"and refining them\")
@@ -2549,6 +2855,10 @@ sequence intended for beginners. I prefer to use
something like
4. A tip for beginners
======================
+TODO: Rewrite this section! It was mostly superseded by:
+
+ (find-here-links-intro \"4. `find-here-links-3'\")
+
Some people find the instructions above hard to follow because
they force them to remember lots of things that are off-screen.
If you run the second sexp below,
@@ -3214,14 +3524,14 @@ hyperlinks in scripts]
(defun find-links-conv-intro (&rest pos-spec-list) (interactive)
(let ((ee-buffer-name "*(find-links-conv-intro)*"))
- (apply 'find-estring "\
+ (apply 'find-eintro "\
\(Re)generate: (find-links-conv-intro)
Source code: (find-efunction 'find-links-conv-intro)
More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -3676,7 +3986,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -3899,8 +4209,38 @@ Try this, with `M-2 M-e' on each line:
5. The first line regenerates the buffer
========================================
-\[To do: explain this convention with examples; explain the
-conventions for the \"variants of the first line\"\]
+Most of the \"M-h commands\" generate buffers with elisp
+hyperlinks in which the the first line \"regenerates the
+buffers\". This means two things:
+
+ 1. You can copy the first to your notes, and it will work as a
+ link to that buffer. For example:
+
+ (find-efunction 'next-line)
+ (find-evariable 'line-move-visual)
+ (find-latex-links \"/tmp/mytest\")
+ (find-latex-links \"~/latextest\")
+ (find-code-pdf-links
\"/usr/local/texlive/2019/texmf-dist/doc/asymptote/\" \"{c}\")
+ (find-code-pdf-links
\"/usr/local/texlive/2019/texmf-dist/doc/asymptote/\" \"asy\")
+
+ A good way to compare the results of the two
+ `find-latex-links' and the two `find-code-pdf-links' sexps
+ above is to run them with `M-2 M-e'. The prefix `M-2' to
+ `M-e' makes the \"target\" of a sexp be displayed in a
+ second window without switching to it. See:
+
+ (find-efunctiondescr 'ee-eval-sexp-eol)
+ (find-multiwindow-intro \"find-2a\")
+
+ 2. You can change the arguments of the sexp in the first line
+ and run it again, and this will regenerate the buffer with
+ some modifications. This was explained here:
+
+ (find-eev-quick-intro \"7.5. `find-latex-links'\" \"change the
\\\"{stem}\\\"\")
+ (find-eev-quick-intro \"11.1. `find-pdf-links'\" \"adjust by hand\")
+
+\[To do: explain how this works in more complex templates.
+Example:\]
(find-find-links-links)
(find-find-links-links \"\\\\M-u\")
@@ -3911,6 +4251,7 @@ conventions for the \"variants of the first line\"\]
+
6. Pointing to where we are now
===============================
Several of the `M-h' commands are mainly meant to help us
@@ -4037,7 +4378,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-wrap-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial (for eepitch) and a sandbox.
+It is meant as both a tutorial (for eepitch) and a sandbox.
@@ -4273,7 +4614,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -4506,7 +4847,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -4798,7 +5139,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -4944,7 +5285,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -5115,7 +5456,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -5469,7 +5810,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -5693,7 +6034,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -5889,7 +6230,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -6318,7 +6659,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -6752,7 +7093,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -6940,7 +7281,7 @@ More intros: (find-eev-quick-intro)
(find-links-conv-intro)
(find-eev-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -6992,7 +7333,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -7222,7 +7563,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -7316,7 +7657,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -7826,7 +8167,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -8125,7 +8466,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
Note: this intro needs to be rewritten!
@@ -8351,7 +8692,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -8544,7 +8885,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
@@ -8615,7 +8956,7 @@ Source code: (find-efunction 'find-escripts-intro)
More intros: (find-eev-quick-intro)
(find-eev-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
The quickest way to open or recreate this is with `M-6 M-j'.
diff --git a/eev-mode.el b/eev-mode.el
index 62cbb4f..cf12857 100644
--- a/eev-mode.el
+++ b/eev-mode.el
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019jun10
+;; Version: 2019jun21
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-mode.el>
@@ -142,7 +142,9 @@ and: (find-eval-intro \"`M-k'\")"
;; See: (find-eval-intro "Producing and refining hyperlinks")
;; (find-eval-intro "`M-h M-2'")
;; Source: (find-eev "eev-edit.el")
+ (define-key eev-mode-map "\M-h\M-1" 'find-here-links-1)
(define-key eev-mode-map "\M-h\M-2" 'ee-duplicate-this-line)
+ (define-key eev-mode-map "\M-h\M-3" 'find-here-links-3)
(define-key eev-mode-map "\M-h\M-y" 'ee-yank-pos-spec)
(define-key eev-mode-map "\M-h\M-w" 'ee-copy-this-line-to-kill-ring)
(define-key eev-mode-map "\M-h\M--" 'ee-shrink-hyperlink-at-eol)
diff --git a/eev-pdflike.el b/eev-pdflike.el
index 5927c5b..394ce8a 100644
--- a/eev-pdflike.el
+++ b/eev-pdflike.el
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019mar10
+;; Version: 2019jun24
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-pdflike.el>
@@ -131,6 +131,7 @@
;; «.find-djvutxt-text» (to "find-djvutxt-text")
;;
;; «.aliases» (to "aliases")
+;; «.aliases-windows» (to "aliases-windows")
;; «.code-brxxxs» (to "code-brxxxs")
@@ -343,11 +344,13 @@ newline are spurious - and replaces them by \"(ff)\"."
;; (defun ee-find-pdftotext-text (fname)
;; (format "pdftotext -layout -enc Latin1 '%s' -" (ee-expand fname)))
+(defvar ee-pdftotext-program "pdftotext")
+
(defun ee-find-pdf-text (fname)
- `("pdftotext" "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
+ `(,ee-pdftotext-program "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
(defun ee-find-pdftotext-text (fname)
- `("pdftotext" "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
+ `(,ee-pdftotext-program "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
@@ -371,8 +374,10 @@ newline are spurious - and replaces them by \"(ff)\"."
;; (find-code-xxxpdf-family "texworkspdf-page")
(code-xxxpdf-family "texworkspdf-page")
+(defvar ee-texworks-program "texworks")
+
(defun ee-find-texworkspdf-page (fname &optional page)
- `("texworks"
+ `(,ee-texworks-program
,@(if page `(,(format "--position=%d" page)))
,fname
))
@@ -510,6 +515,15 @@ may want to put here code that cleans up that page
information.")
;; (find-code-xxxpdf-alias "evince" "evince-page")
+
+;; «aliases-windows» (to ".aliases-windows")
+;; (find-elnode "System Environment")
+;; (find-evardescr 'system-type)
+(if (eq system-type 'windows-nt)
+ (code-xxxpdf-alias "pdf-page" "texworkspdf-page"))
+
+
+
;; «code-brxxxs» (to ".code-brxxxs")
(code-brfile 'find-pdf-text :local 'brpdftextl :dired 'brpdftextd)
diff --git a/eev-plinks.el b/eev-plinks.el
index c473085..5fdd10d 100644
--- a/eev-plinks.el
+++ b/eev-plinks.el
@@ -111,6 +111,7 @@
;; (find-eev "eev-brxxx.el")
+;; «.find-urlretrieve» (to "find-urlretrieve")
;; «.find-wget» (to "find-wget")
;; «.find-gitk» (to "find-gitk")
;; «.find-tkdiff» (to "find-tkdiff")
@@ -247,6 +248,48 @@
+;;; _ _ _
+;;; _ _ _ __| | _ __ ___| |_ _ __(_) _____ _____
+;;; | | | | '__| |_____| '__/ _ \ __| '__| |/ _ \ \ / / _ \
+;;; | |_| | | | |_____| | | __/ |_| | | | __/\ V / __/
+;;; \__,_|_| |_| |_| \___|\__|_| |_|\___| \_/ \___|
+;;;
+;; «find-urlretrieve» (to ".find-urlretrieve")
+;; See: (find-node "(url)Retrieving URLs" "url-retrieve-synchronously")
+;; Tests: http://angg.twu.net/e/emacs.e.html#find-urlretrieve
+;; (find-es "emacs" "find-urlretrieve")
+;;
+(defun find-urlretrieve00 (url &rest pos-spec-list)
+ "Download URL with `url-retrieve-synchronously'. Show the full response."
+ (apply 'find-ebuffer (url-retrieve-synchronously url) pos-spec-list))
+
+(defun ee-urlretrieve-3 (url)
+ "Download URL with `url-retrieve-synchronously'. Return status, headers,
body."
+ (find-urlretrieve00 url 1 "\n\n")
+ (let* ((header (buffer-substring 1 (- (point) 1)))
+ (body (buffer-substring (point) (point-max)))
+ (status (replace-regexp-in-string "\n.*" "" header)))
+ (ee-kill-this-buffer)
+ (list status header body)))
+
+(defun find-urlretrieve0 (url)
+ "Download URL with `url-retrieve-synchronously'. Return body as a raw
string."
+ (let* ((shb (ee-urlretrieve-3 url))
+ (status (nth 0 shb))
+ (body (nth 2 shb)))
+ (if (equal status "HTTP/1.1 200 OK")
+ body
+ (error "%s -> %s" url status))))
+
+(defun find-urlretrieve (url &rest pos-spec-list)
+ "Download URL with `url-retrieve-synchronously'.
+TODO: detect the encoding!!!"
+ (let ((ee-buffer-name url))
+ (apply 'find-estring (find-urlretrieve0 url) pos-spec-list)))
+
+
+
+
;; «find-wget» (to ".find-wget")
;;
(defun find-wget00 (url)
diff --git a/eev-tlinks.el b/eev-tlinks.el
index 3e5a696..8a0713f 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -19,7 +19,7 @@
;;
;; Author: Eduardo Ochs <address@hidden>
;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version: 2019may16
+;; Version: 2019jun21
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-tlinks.el>
@@ -299,7 +299,7 @@ More intros: (find-eev-quick-intro)
(find-eval-intro)
(find-eepitch-intro)
This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
Hello
=====
@@ -1230,7 +1230,14 @@ echo 'http://angg.twu.net/eev-videos/{anggstem}.mp4'
>> ~/.psne.log
(find-latex-links "/tmp/test")
;; Convention: the first sexp always regenerates the buffer.
;; (find-efunction 'find-latex-links)
- (find-eev-quick-intro "`find-latex-links'")
+ (find-eev-quick-intro "7.5. `find-latex-links'")
+ (find-eev-quick-intro "7.5. `find-latex-links'" "change the \"{stem}\"")
+ (find-eev-quick-intro "7.5. `find-latex-links'" "top line")
+ (find-eev-quick-intro "7.5. `find-latex-links'" "(ee-copy-rest ...)")
+ (find-eev-quick-intro "7.5. `find-latex-links'" "`C-y'")
+ (find-eev-quick-intro "7.5. `find-latex-links'" "save the file foo.tex")
+ (find-eev-quick-intro "7.5. `find-latex-links'" "execute the three
defuns")
+ ""
(ee-copy-rest 1 '(find-fline ,(concat stem ".tex")))
""
,(ee-template0 "\
- [elpa] externals/eev updated (3c15e4b -> e836949), Stefan Monnier, 2019/06/25
- [elpa] externals/eev e89c18c 01/10: Added more tutorial links to `find-code-pdf-links'., Stefan Monnier, 2019/06/25
- [elpa] externals/eev b6940a2 02/10: Rewrote the section "The first line regenerates the buffer" in (find-links-intro)., Stefan Monnier, 2019/06/25
- [elpa] externals/eev 7b8924c 04/10: make `find-pdf-page' use texworks on M$ Windows., Stefan Monnier, 2019/06/25
- [elpa] externals/eev 0ac2da4 07/10: Added some figures to (find-here-links-intro)., Stefan Monnier, 2019/06/25
- [elpa] externals/eev 5b27f53 09/10: Added `find-urlretrieve'., Stefan Monnier, 2019/06/25
- [elpa] externals/eev 153017a 06/10: Fixed some typos in eev-pdflike.el., Stefan Monnier, 2019/06/25
- [elpa] externals/eev 38a290a 03/10: Added `M-h M-3' and documentation for it., Stefan Monnier, 2019/06/25
- [elpa] externals/eev 26bd206 05/10: New section: (find-eev-quick-intro "4.2. `find-ekey-links' and friends"), Stefan Monnier, 2019/06/25
- [elpa] externals/eev 9417a58 08/10: Small changes in `find-here-links-3'., Stefan Monnier, 2019/06/25
- [elpa] externals/eev e836949 10/10: Merge remote-tracking branch 'eev/UTF-8' into externals/eev,
Stefan Monnier <=