[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eev 7c396d0 26/64: Many changes in the intros; added ee
From: |
Stefan Monnier |
Subject: |
[elpa] externals/eev 7c396d0 26/64: Many changes in the intros; added eev-load.el |
Date: |
Sun, 7 Apr 2019 16:59:06 -0400 (EDT) |
branch: externals/eev
commit 7c396d0010422a55943115e8c03a9460956ce4d2
Author: Eduardo Ochs <address@hidden>
Commit: Eduardo Ochs <address@hidden>
Many changes in the intros; added eev-load.el
---
ChangeLog | 23 +++++--
eev-elinks.el | 13 ++--
eev-eval.el | 113 ++++++++++++++++++++++---------
eev-intro.el | 190 +++++++++++++++++++++++++++++------------------------
eev-load.el | 125 +++++++++++++++++++++++++++++++++++
eev-mode.el | 4 +-
eev-multiwindow.el | 61 ++++++++++-------
7 files changed, 378 insertions(+), 151 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b91408e..ab3c686 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,16 +1,27 @@
2019-01-23 Eduardo Ochs <address@hidden>
- * eejump.el: moved the binding for `M-j' to eev-intro.el.
-
- * eev-mode.el (eev-mode-map-set): rewrote some comments.
- (eev-mode-map-set): removed the binding for `find-git-links-1'.
- (eev-mode-map-set): added the binding for `M-j' (`eejump').
-
* eev-intro.el (find-eev-quick-intro): added sections "3.1.
Non-elisp hyperlinks", "7.2. The list of eejump targets", "7.3.
Defining eejump targets"; small changes in other sections.
+ (find-multiwindow-intro): small changes.
+ (find-anchors-intro): small changes.
+ (find-eval-intro): small changes.
+ (find-brxxx-intro): small changes.
+ (find-emacs-keys-intro): small changes.
+ (find-links-intro): small changes.
* eev-eval.el: added comments.
+ (ee-eval-last-sexp): rewrote to make it use
+ `ee-eval-last-sexp-0', `ee-eval-last-sexp-1', etc.
+
+ * eejump.el: moved the binding for `M-j' to eev-mode.el.
+
+ * eev-elinks.el: moved the binding for `M-h M-h' to eev-mode.el.
+
+ * eev-mode.el (eev-mode-map-set): rewrote some comments.
+ (eev-mode-map-set): removed the binding for `find-git-links-1'.
+ (eev-mode-map-set): added the binding for `M-j' (`eejump').
+ (eev-mode-map-set): added the binding for `M-h M-h' (`find-here-links').
2019-01-05 Eduardo Ochs <address@hidden>
diff --git a/eev-elinks.el b/eev-elinks.el
index 0210fa1..13dfb0e 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -1,6 +1,6 @@
;;; eev-elinks.el --- `find-efunction-links' and other `find-e*-links'
-;; Copyright (C) 2012,2013 Free Software Foundation, Inc.
+;; Copyright (C) 2012,2013,2019 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: 2013nov18
+;; Version: 2019jan23
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-elinks.el>
@@ -858,7 +858,7 @@ This needs a temporary directory; see:
(find-prepared-intro)"
;;; |_| |_|_| |_|\__,_| |_| |_|\___|_| \___| |_|_|_| |_|_|\_\___/
;;;
;; �find-here-links� (to ".find-here-links")
-;; TO DO: DOCUMENT THIS!
+;; See: (find-eev-quick-intro "`M-h M-h'")
;; (find-efunction 'find-grep-links)
;; (find-efunction 'find-einfo-links)
@@ -866,10 +866,11 @@ This needs a temporary directory; see:
(find-prepared-intro)"
;; (find-find-links-links "\\M-h" "here" "")
;; (find-efunction 'find-ecolors)
-(define-key eev-mode-map "\M-h\M-h" 'find-here-links)
+;; Moved the key binding to:
+;; (find-eevfile "eev-mode.el" "\\M-h\\M-h")
+;; (define-key eev-mode-map "\M-h\M-h" 'find-here-links)
-;; Tools
-;; (defun ee-buffer-re (re) (string-match re (buffer-name)))
+;; Some tools for detecting which kind of buffer we're in.
(defun ee-buffer-re (re)
(if (string-match re (buffer-name))
(match-string 1 (buffer-name))))
diff --git a/eev-eval.el b/eev-eval.el
index 669a3ae..7eb7743 100644
--- a/eev-eval.el
+++ b/eev-eval.el
@@ -1,6 +1,6 @@
-;;; eev.el -- variants of eval-last-sexp.
+;;; eev-eval.el -- variants of eval-last-sexp.
-;; Copyright (C) 2012 Free Software Foundation, Inc.
+;; Copyright (C) 2012,2019 Free Software Foundation, Inc.
;;
;; This file is (not yet?) part of GNU eev.
;;
@@ -32,8 +32,20 @@
;;; Commentary:
+;; This file implements:
+;; `M-E' (`ee-eval-last-sexp'), that is a better `C-x C-e', and
+;; `M-e' (`ee-eval-sexp-eol'), that is a better `C-e C-x C-e',
+;; as described here:
+;; (find-eev-quick-intro "2. Evaluating Lisp")
+;; (find-eev-quick-intro "2. Evaluating Lisp" "When you type `M-e'")
+;; (find-eev-quick-intro "2. Evaluating Lisp" "numeric prefixes")
+;; (find-eev-quick-intro "2. Evaluating Lisp" "`M-0 M-e'")
+;; Note that `M-2 M-e' and `M-2 M-e' only make sense when the sexp is
+;; a hyperlink.
+
(require 'eev-flash) ; (find-eev "eev-flash.el")
+(require 'eev-multiwindow) ; (find-eev "eev-multiwindow.el")
@@ -44,15 +56,9 @@
;;; \___| \_/ \__,_|_| |___/\___/_/\_\ .__/ \___|\___/|_|
;;; |_|
;;;
-;;; evaluating sexps (alternatives to eval-last-sexp)
-;;; See: (find-eev-quick-intro "2. Evaluating Lisp")
-;;; (find-eev-quick-intro "2. Evaluating Lisp" "When you type `M-e'")
-;;; (find-eev-quick-intro "2. Evaluating Lisp" "numeric prefixes")
+;;; Evaluating sexps (alternatives to eval-last-sexp)
;;;
-;; ee-eval-sexp-eol may be obsolete
-;; ee-arg is still used in eev-insert.el (ack!)
-
;; See (find-efunction 'eval-last-sexp-1)
(defun ee-backward-sexp ()
"An internal function used by `ee-eval-last-sexp'."
@@ -81,7 +87,11 @@
(defmacro ee-no-debug (&rest body)
`(let ((debug-on-error nil)) ,@body))
-;; (defun ee-eval (sexp) (ee-no-debug (eval sexp)))
+;; `ee-eval' is also defined elsewhere:
+;; (find-eevfile "eepitch.el" "defun ee-eval")
+;; (defun ee-eval (sexp) (let ((debug-on-error nil)) (eval sexp)))
+
+(defun ee-eval (sexp) (ee-no-debug (eval sexp)))
(defun ee-eval-last-sexp-0 ()
"Highlight the sexp before point."
@@ -89,6 +99,10 @@
(eeflash+ (ee-backward-sexp) (ee-forward-sexp)
ee-highlight-spec)))
+(defun ee-eval-last-sexp-1 ()
+ "Show the sexp before point as a string in the echo area."
+ (prin1 (ee-last-sexp)))
+
(defun ee-eval-last-sexp-2 ()
"Show the target of the sexp before point in another window."
(find-wset "1so_o" '(ee-eval-last-sexp)))
@@ -109,11 +123,25 @@
(debug-on-error t))
(eval sexp)))
+(defun ee-eval-last-sexp-8 ()
+ "Evaluate the sexp before point and pretty-print its result in other buffer."
+ (find-epp (ee-eval (read (ee-last-sexp)))))
+
+(defun ee-eval-last-sexp-9 ()
+ "A hack for testing `call-interactively'"
+ (let ((interactive-clause (read (ee-last-sexp))))
+ (let ((debug-on-error nil))
+ (call-interactively
+ `(lambda (&rest args) ,interactive-clause
+ (message "%S" args))))))
+
(defun ee-eval-last-sexp (&optional arg)
"By default, evaluate sexp before point, and print value in minibuffer.
This is eev's variant of `eval-last-sexp', 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
@@ -123,30 +151,55 @@ If ARG is:
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'"
+ 9: a hack for testing `call-interactively'
+other: set EE-ARG to ARG and eval (ee-last-sexp)."
(interactive "P")
- (cond ((eq arg 0)
- (save-excursion
- (eeflash+ (ee-backward-sexp) (ee-forward-sexp)
- ee-highlight-spec)))
- ((eq arg 1) (prin1 (ee-last-sexp)))
- ;; ((eq arg 2) (prin1 (read (ee-last-sexp))))
- ;; ((eq arg 3) (ee-eval (read (ee-last-sexp))))
- ((eq arg 2) (find-wset "1so_o" ' (ee-eval-last-sexp)))
- ((eq arg 3) (find-wset "1so_" ' (ee-eval-last-sexp)))
- ((eq arg 4) (let ((sexp (read (ee-last-sexp)))) (debug) (eval sexp)))
- ((eq arg 5) (let ((sexp (read (ee-last-sexp)))
- (debug-on-error t))
- (eval sexp)))
- ((eq arg 8) (find-epp (ee-eval (read (ee-last-sexp)))))
- ((eq arg 9) (let ((interactive-clause (read (ee-last-sexp))))
- (let ((debug-on-error nil))
- (call-interactively
- `(lambda (&rest args) ,interactive-clause
- (message "%S" args))))))
+ (cond ((eq arg 0) (ee-eval-last-sexp-0))
+ ((eq arg 1) (ee-eval-last-sexp-1))
+ ((eq arg 2) (ee-eval-last-sexp-2))
+ ((eq arg 3) (ee-eval-last-sexp-3))
+ ((eq arg 4) (ee-eval-last-sexp-4))
+ ((eq arg 5) (ee-eval-last-sexp-5))
+ ((eq arg 8) (ee-eval-last-sexp-8))
+ ((eq arg 9) (ee-eval-last-sexp-9))
(t (prin1 (let ((ee-arg arg))
(ee-eval (read (ee-last-sexp))))))))
+;; (defun ee-eval-last-sexp (&optional arg)
+;; "By default, evaluate sexp before point, and print value in minibuffer.
+;; This is eev's variant of `eval-last-sexp', and it can behave in
+;; several different ways depending on the prefix argument ARG.
+;; 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'"
+;; (interactive "P")
+;; (cond ((eq arg 0)
+;; (save-excursion
+;; (eeflash+ (ee-backward-sexp) (ee-forward-sexp)
+;; ee-highlight-spec)))
+;; ((eq arg 1) (prin1 (ee-last-sexp)))
+;; ((eq arg 2) (find-wset "1so_o" ' (ee-eval-last-sexp)))
+;; ((eq arg 3) (find-wset "1so_" ' (ee-eval-last-sexp)))
+;; ((eq arg 4) (let ((sexp (read (ee-last-sexp)))) (debug) (eval
sexp)))
+;; ((eq arg 5) (let ((sexp (read (ee-last-sexp)))
+;; (debug-on-error t))
+;; (eval sexp)))
+;; ((eq arg 8) (find-epp (ee-eval (read (ee-last-sexp)))))
+;; ((eq arg 9) (let ((interactive-clause (read (ee-last-sexp))))
+;; (let ((debug-on-error nil))
+;; (call-interactively
+;; `(lambda (&rest args) ,interactive-clause
+;; (message "%S" args))))))
+;; (t (prin1 (let ((ee-arg arg))
+;; (ee-eval (read (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)"
diff --git a/eev-intro.el b/eev-intro.el
index 2605e94..372bfbb 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -73,12 +73,13 @@
;; See: (find-anchors-intro)
+
;; Ignore this - this is an obsolete hack that I used to use to make
;; the htmlization in <http://angg.twu.net/eev-intros/> work better...
;; (find-angg "eev-intros/")
;; (find-angg "eev-intros/README")
-' (fooi-re "Source code: (find-efunction '\\([!-~]*\\))"
- "Source code: (find-eev \\\\\"eev-intro.el\\\\\" \\\\\"\\1\\\\\")")
+;;' (fooi-re "Source code: (find-efunction '\\([!-~]*\\))"
+;; "Source code: (find-eev \\\\\"eev-intro.el\\\\\"
\\\\\"\\1\\\\\")")
;; �find-intro-here� (to ".find-intro-here")
@@ -355,8 +356,8 @@ For an introduction to the ideas here, see:
-The standard way to evaluate Lisp: `C-x C-e'
-============================================
+1. The standard way to evaluate Lisp: `C-x C-e'
+===============================================
The most important idea in Emacs is that Lisp code can appear
anywhere, and you can evaluate a Lisp expression (a \"sexp\") by
placing the cursor (the \"point\") just after it and typing `C-x
@@ -371,8 +372,8 @@ positions - you should get different results.
-The end of line and `M-e'
-=========================
+2. The end of line and `M-e'
+============================
A common operation is to move the point to the end of the current
line, then run `C-x C-e'. That can be done with `C-e C-x C-e',
but eev-mode implements a shorthand for it: `M-e'. Try it here:
@@ -397,8 +398,9 @@ hightlight the subsexps `(* 2 3)', `(* 4 5)', and `4'.
-What to execute, and in what order
-==================================
+
+3. What to execute, and in what order
+=====================================
Note that the order of evaluation may be important:
(setq a 5)
@@ -413,6 +415,17 @@ An exercise: edit the three sexps above to introduce a
`(setq a 22)', then use that sexp and the `(* a a)' to calculate
the square of 22.
+Another exercise: just as `setq' sets variables and can override
+their previous values, `defun' defines, and redefines, functions.
+Execute the sexps below in different orders to obtain the results
+25, 36, 50, and 60.
+
+ (setq a 5)
+ (setq a 6)
+ (defun f (x) (* x x))
+ (defun f (x) (* x 10))
+ (f a)
+
MORAL: Elisp code can appear anywhere in any Emacs buffer, but it
is _passive by default_. It only gets executed if we move the
point to the right positions and type `C-x C-e', `M-e', or
@@ -422,8 +435,8 @@ order, and can be edited and modified.
-Elisp hyperlinks
-================
+4. Elisp hyperlinks
+===================
Some Emacs functions can be used as hyperlinks. When sexps like
(find-file \"/tmp/\")
@@ -476,8 +489,8 @@ eev versions of the links above:
-Going back
-==========
+5. Going back
+=============
Web browsers let you follow a hyperlink and then \"go back\".
There are different ways of going back - if you opened the new
page on a new window or tab, then going back means deleting the
@@ -512,8 +525,8 @@ quicker than recreating it anew.
-Refining hyperlinks
-===================
+6. Refining hyperlinks
+======================
Most hyperlinks functions defined by eev can be \"refined\" by
the addition of extra arguments. These extra arguments are called
a \"pos-spec\" (or a \"pos-spec-list\") and they specify a
@@ -535,8 +548,8 @@ are numbers or strings. Try:
-Pos-spec-lists
-==============
+7. Pos-spec-lists
+===---===========
The optional arguments that refine a hyperlink form what we call
a \"pos-spec-list\". For example, the pos-spec-list here has two
elements,
@@ -571,8 +584,8 @@ replace `ee-goto-rest' with your own extended version.
-Anchors and pages
-=================
+8. Anchors and pages
+====================
\[See:\] (find-anchors-intro)
Some hyperlink functions, like `find-efunction' and
@@ -607,8 +620,8 @@ more on \"pages\", see:
-Producing and refining hyperlinks
-=================================
+9. Producing and refining hyperlinks
+====================================
If you are on an Info page, typing `M-h M-i' will create a
temporary buffer containing a header - which we will discuss
later - and several (possibly equivalent) links to that info
@@ -1187,8 +1200,8 @@ Is is meant as both a tutorial and a sandbox.
-What is a hyperlink?
-====================
+1. What is a hyperlink?
+=======================
In a previous tutorial - (find-eval-intro) - we saw that several
kinds of sexps can be used as hyperlinks. For example, these:
@@ -1231,8 +1244,8 @@ kinds of hyperlinks.
-Elisp hyperlinks buffers
-========================
+2. Elisp hyperlinks buffers
+===========================
Emacs has several help commands, whose bindings start with `C-h',
that display their information in (temporary) \"help buffers\" -
and in many cases these generated help buffers have hyperlinks,
@@ -1286,8 +1299,8 @@ What is that?...
-Elisp hyperlinks buffers conventions
-====================================
+3. Elisp hyperlinks buffers conventions
+=======================================
Let's refer to Emacs's help buffers as \"C-h buffers\" and to
eev's elisp hyperlink buffers as \"M-h buffers\". Here is a quick
list of the main differences and conventions; some of them will
@@ -1345,8 +1358,8 @@ be expanded later:
-`find-here-links'
-=================
+4. `find-here-links'
+====================
The most important of the commands that generates buffers with elisp
hyperlinks - \"M-h commands\", in the terminology explained above - is
`find-here-links', which integrates most of the functionalities of
@@ -1434,8 +1447,8 @@ can compare the different cases using just <up>, <down>,
and M-e.
-`find-here-links': usage patterns
-=================================
+5. `find-here-links': usage patterns
+====================================
Typically what happens is this. We are putting our notes - eepitch
blocks, hyperlinks, etc - in a certain file; let's refer to it as the
\"e-script\". Then we start to navigate for information, and we find
@@ -1487,8 +1500,8 @@ and step (3) sometimes gives several sexps for us to
choose from]
-Basic and non-basic hyperlinks
-==============================
+6. Basic and non-basic hyperlinks
+=================================
How can we learn to recognize what each hyperlink sexp does? And
which ones are safe(r), and which ones are not? How do we
classify all hyperlink sexps?
@@ -1557,8 +1570,8 @@ that they generate.
-ee-hyperlink-prefix
-===================
+7. ee-hyperlink-prefix
+======================
`ee-hyperlink-prefix' is both a variable and a function that
helps us set that variable; it started to an experiment on how to
create an alternative to `M-x customize' and ended up becoming
@@ -1596,8 +1609,8 @@ Try this, with `M-2 M-e' on each line:
-The first line regenerates the buffer
-=====================================
+8. The first line regenerates the buffer
+========================================
\[To do: explain this convention with examples; explain the
conventions for the \"variants of the first line\"\]
@@ -1610,8 +1623,8 @@ conventions for the \"variants of the first line\"\]
-Pointing to where we are now
-============================
+9. Pointing to where we are now
+===============================
Several of the `M-h' commands are mainly meant to help us
generate hyperlinks to \"where we are now\": to the current file,
to the current Info page, to the current `find-*-intro', to an
@@ -1653,8 +1666,8 @@ buffer, and so on. They don't try to be very smart -
-The rest of the buffer
-======================
+10. The rest of the buffer
+==========================
Several elisp hyperlinks buffers are composed of two parts: a
series of links at the top, and then a template-generated text
@@ -1738,6 +1751,11 @@ Is is meant as both a tutorial and a sandbox.
+This intro has been mostly superseded by:
+(find-eev-quick-intro \"9.1. `code-c-d'\")
+
+
+
Avoiding full path names
========================
Suppose that you have downloaded (\"psne\"-ed) this URL,
@@ -2090,8 +2108,8 @@ Is is meant as both a tutorial and a sandbox.
-Introduction
-============
+1. Introduction
+===============
We saw in
(find-psne-intro)
@@ -2119,8 +2137,8 @@ brxxx-functions from base functions.
-A first example
-===============
+2. A first example
+==================
Let's define two trivial base functions, one that expects a URL,
and another one that expects a file name:
@@ -2177,8 +2195,8 @@ to that URL.
-The conversions
-===============
+3. The conversions
+==================
One underlying idea behind all this is that we have two
conversion functions, one from URLs to file names, and another
from (absolute) file names to URLs starting with \"file:///\".
@@ -2205,8 +2223,8 @@ execute:
-Naming conventions for brxxx-functions
-======================================
+4. Naming conventions for brxxx-functions
+=========================================
By convention, each name for a brxxx-function is composed of a
prefix, a stem, and a suffix. The prefix is always \"br\", the
stem is a mnemonic for the base function, and the suffix is
@@ -2245,8 +2263,8 @@ In our example with `foo-url' and `foo-file' we had:
-Calling `code-brurl' and `code-brfile'
-======================================
+5. Calling `code-brurl' and `code-brfile'
+=========================================
(code-brurl '<U-function>
:remote 'br<stem> :local 'br<stem>l :dired 'br<stem>d)
@@ -2269,8 +2287,8 @@ curious about the inspirations behind it, here they are:
-The dired variation
-===================
+6. The dired variation
+======================
In dired mode each line corresponds to a file
@@ -3379,8 +3397,8 @@ Is is meant as both a tutorial and a sandbox.
-Introduction
-============
+1. Introduction
+===============
In many situations - for example, when we want to script a
debugger, or to test programs that have to talk to one another,
or to control several external machines simultaneously - the
@@ -3415,8 +3433,8 @@ practical experimentation.
-`find-wset'
-===========
+2. `find-wset'
+==============
Suppose that we are in a buffer A, and we want to create a window
configuration with A at the left, and with the buffers B and C
stacked on one another at the right. That is:
@@ -3486,8 +3504,8 @@ how to extend it - see the source:
-High-level words
-================
+3. High-level words
+===================
Very often we want to create window setups like
_______________ _______________
@@ -3528,8 +3546,8 @@ window \"C\".
-Several eepitch targets
-=======================
+4. Several eepitch targets
+==========================
If we try to build a window setup like this one, with two eepitch
targets, with just `find-wset', we will run into problems -
@@ -3577,8 +3595,8 @@ word, so this is equivalent to:
-Restarting eepitch targets
-==========================
+5. Restarting eepitch targets
+=============================
Sometimes we want to do the same as above, but restarting both
eepitch targets, i.e., something like this:
@@ -3622,8 +3640,8 @@ print(open(\"/tmp/o\").read())
-Non-trivial examples
-====================
+6. Non-trivial examples
+========================
See:
(find-prepared-intro \"An `ee' for Python\")
@@ -3631,8 +3649,8 @@ See:
-Eepitch blocks for two targets
-==============================
+7. Eepitch blocks for two targets
+=================================
An eepitch script with two targets uses several different kinds
of red star lines - `(eepitch-target1)', `(eepitch-target2)',
`(find-3EE ...)', `(find-3ee ...)', etc. We don't want to have to
@@ -3660,8 +3678,8 @@ Note that we use to `find-3EE' to restart targets instead
of
-Adding support for new characters in `find-wset'
-================================================
+8. Adding support for new characters in `find-wset'
+===================================================
The standard characters supported by `find-wset' are these:
char action key
@@ -3698,16 +3716,18 @@ See: (find-prepared-intro)
-Executing key sequences at other windows
-========================================
+9. Executing key sequences at other windows
+===========================================
It is possible to use multi-window settings, together with the
trick that `<f8>' on a red star line executes it as Lisp and
moves down, to create tutorials for Emacs modes. An example:
+ (...)
-A tutorial for Info mode
-========================
+
+10. A tutorial for Info mode
+============================
Here's a mini-tutorial for Info mode, demonstrating how to
navigate in Info using the usual movement keys, plus TAB,
<backtab>, RET, l (last), u (up), n (next), p (prev), q (quit),
@@ -4078,6 +4098,11 @@ Is is meant as both a tutorial and a sandbox.
+NOTE: This has been mostly superseded by:
+(find-eev-quick-intro \"8. Anchors\")
+
+
+
Introduction: `ee-anchor-format' and `to'
=========================================
A hyperlink like
@@ -5476,7 +5501,13 @@ The most basic keys of eev are:
`M-j' takes you to the list of jump targets.
`M-2 M-j' takes you to this help page.
`M-5 M-j' takes you to: (find-eev-quick-intro)
+ <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'\")
+ 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\")
2. Key sequences and how to abort them
@@ -5590,9 +5621,6 @@ C-x r j <char> -- jump-to-register (find-enode
\"Position Registers\")
11. Other keys (eev)
====================
-M-h M-h -- find-here-links (find-eev-quick-intro \"`M-h M-h'\")
-F8 -- eepitch-this-line (find-eev-quick-intro \"what <F8>
does\")
-M-T -- eewrap-eepitch (find-eev-quick-intro \"`M-T'\")
M-F -- eewrap-find-fline (find-eev-quick-intro \"`M-F'\")
M-M -- eewrap-man (find-eev-quick-intro \"`M-M'\")
M-S -- eewrap-sh (find-eev-quick-intro \"`M-S'\")
@@ -6311,17 +6339,6 @@ 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)))
-
-
-
6.2. Other targets
@@ -6776,6 +6793,7 @@ files.
9. Shorter hyperlinks
=====================
+See also: (find-code-c-d-intro)
9.1. `code-c-d'
---------------
diff --git a/eev-load.el b/eev-load.el
new file mode 100644
index 0000000..68d418b
--- /dev/null
+++ b/eev-load.el
@@ -0,0 +1,125 @@
+;;; eev-load.el -- load all the main modules of eev.
+;;; This can also be used as an index to the main source files.
+
+;; Copyright (C) 2019 Free Software Foundation, Inc.
+;;
+;; This file is (not yet?) 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
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; GNU eev is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+;;
+;; Author: Eduardo Ochs <address@hidden>
+;; Maintainer: Eduardo Ochs <address@hidden>
+;; Version: 2019jan23
+;; Keywords: e-scripts
+;;
+;; Supersedes: (find-eev "eev-all.el")
+;; (find-eev "eev2-all.el")
+;; (find-eev "eev-readme.el")
+;;
+;; Latest version: <http://angg.twu.net/eev-current/eev-load.el>
+;; htmlized: <http://angg.twu.net/eev-current/eev-load.el.html>
+;; <http://angg.twu.net/eev-intros/find-eev-quick-intro.html>
+;; (find-eev-quick-intro)
+
+;;; Commentary:
+
+;; The "eev quick intro" itself, and many other intros:
+(require 'eev-intro) ; (find-eev "eev-intro.el")
+;;
+;; Following elisp hyperlinks (`M-e') and going back (`M-k'):
+;; (find-eev-quick-intro "2. Evaluating Lisp" "When you type `M-e'")
+;; (find-eev-quick-intro "3. Elisp hyperlinks" "go back" "`M-k'")
+(require 'eev-flash) ; (find-eev "eev-flash.el")
+(require 'eev-multiwindow) ; (find-eev "eev-multiwindow.el")
+(require 'eev-eval) ; (find-eev "eev-eval.el")
+(require 'eev-mode) ; (find-eev "eev-mode.el")
+(require 'eev-anchors) ; (find-eev "eev-anchors.el")
+;;
+;; Support for many kinds of hyperlink functions. See:
+;; (find-eev-quick-intro "3. Elisp hyperlinks")
+(require 'eev-blinks) ; (find-eev "eev-blinks.el")
+(require 'eev-plinks) ; (find-eev "eev-plinks.el")
+(require 'eev-elinks) ; (find-eev "eev-elinks.el")
+(require 'eev-tlinks) ; (find-eev "eev-tlinks.el")
+;;
+;; The main "killer feature" of eev: a way to control interactive programs.
+;; (find-eev-quick-intro "6. Controlling shell-like programs")
+;; (find-eev-quick-intro "6.1. The main key: <F8>")
+;; (find-eev-quick-intro "6.3. Creating eepitch blocks: `M-T'")
+;; (find-eepitch-intro)
+;; (find-wrap-intro)
+(require 'eepitch) ; (find-eev "eepitch.el")
+(require 'eev-wrap) ; (find-eev "eev-wrap.el")
+;;
+;; Eejump (`M-j'):
+;; (find-eev-quick-intro "7. Quick access to one-liners")
+;; (find-eev-quick-intro "7.1. eejump")
+(require 'eejump) ; (find-eev "eejump.el")
+;;
+;; Anchors:
+;; (find-eev-quick-intro "8. Anchors")
+;; (find-eev-quick-intro "8.1. Introduction: `to'")
+(require 'eev-anchors) ; (find-eev "eev-anchors.el")
+;;
+;; Shorter hyperlinks and how to mass-produce them:
+;; (find-eev-quick-intro "9. Shorter hyperlinks")
+;; (find-code-c-d-intro "\nShorter hyperlinks\n")
+(require 'eev-code) ; (find-eev "eev-code.el")
+(require 'eev-brxxx) ; (find-eev "eev-brxxx.el")
+(require 'eev-pdflike) ; (find-eev "eev-pdflike.el")
+;;
+;; (I need to write comments for these)
+(require 'eev-codings) ; (find-eev "eev-codings.el")
+(require 'eev-env) ; (find-eev "eev-env.el")
+(require 'eev-edit) ; (find-eev "eev-edit.el")
+;;
+;; Advanced (and hard to use) features that may require creating a
+;; temporary directory, patching rcfiles, and installing Expect
+;; scripts. See:
+;; (find-prepared-intro)
+;; (find-bounded-intro)
+;; (find-channels-intro)
+(require 'eev-audiovideo) ; (find-eev "eev-audiovideo.el")
+(require 'eev-rcirc) ; (find-eev "eev-rcirc.el")
+(require 'eev-prepared) ; (find-eev "eev-prepared.el")
+(require 'eev-bounded) ; (find-eev "eev-bounded.el")
+(require 'eev-channels) ; (find-eev "eev-channels.el")
+
+
+
+(provide 'eev-load)
+
+
+
+;; Old comments taken from eev-readme.el.
+;; I need to revise this and see what is (not) trash.
+;;
+;; (require 'eev) ; (find-eev "eev.el")
+;; (require 'eev-glyphs) ; (find-eev "eev-glyphs.el")
+;; (require 'eev-compose) ; (find-eev "eev-compose.el")
+;; ; (find-eev "eev-glyphs.el" "eev-set-default-glyphs")
+;; ; (find-eev "eev.el" "ee-setenv")
+;; (require 'eev-steps) ; (find-eev "eev-steps.el")
+;; (require 'eev-langs) ; (find-eev "eev-langs.el")
+;; (require 'eev-mini-steps) ; (find-eev "eev-mini-steps.el")
+;; (require 'eechannel) ; (find-eev "eechannel.el")
+
+
+
+
+
+;; Local Variables:
+;; coding: raw-text-unix
+;; no-byte-compile: t
+;; End:
diff --git a/eev-mode.el b/eev-mode.el
index cb54765..f7465bb 100644
--- a/eev-mode.el
+++ b/eev-mode.el
@@ -32,7 +32,8 @@
(defun ee-kill-this-buffer ()
"Kill the current buffer with fewer warnings than `kill-this-buffer'.
-See: (find-eval-intro \"`M-k'\")"
+See: (find-eev-quick-intro \"3. Elisp hyperlinks\" \"go back\" \"`M-k'\")
+and: (find-eval-intro \"`M-k'\")"
(interactive)
(let ((kill-buffer-query-functions nil))
(kill-this-buffer)))
@@ -99,6 +100,7 @@ See: (find-eval-intro \"`M-k'\")"
;; Source: (find-eev "eev-elinks.el")
(define-key eev-mode-map "\M-h\M-d" 'find-debpkg-links)
(define-key eev-mode-map "\M-h\M-f" 'find-efunction-links)
+ (define-key eev-mode-map "\M-h\M-h" 'find-here-links)
(define-key eev-mode-map "\M-h\M-i" 'find-einfo-links)
(define-key eev-mode-map "\M-h\M-k" 'find-ekey-links)
(define-key eev-mode-map "\M-h\M-p" 'find-pdflike-page-links)
diff --git a/eev-multiwindow.el b/eev-multiwindow.el
index abcf46c..dd0cff4 100644
--- a/eev-multiwindow.el
+++ b/eev-multiwindow.el
@@ -1,6 +1,6 @@
;; eev-multiwindow.el - functions to create multi-window setups
-;; Copyright (C) 2012,2013 Free Software Foundation, Inc.
+;; Copyright (C) 2012,2013,2019 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: 2013aug24
+;; Version: 2019jan23
;; Keywords: e-scripts
;;
;; Latest version: <http://angg.twu.net/eev-current/eev-multiwindow.el>
@@ -29,16 +29,31 @@
;; (find-eev-intro)
;;; Commentary:
+;;
+;; For the main ideas, see: (find-multiwindow-intro)
+
+;;; __ _ _ _
+;;; / _(_)_ __ __| | __ _____ ___| |_
+;;; | |_| | '_ \ / _` |____\ \ /\ / / __|/ _ \ __|
+;;; | _| | | | | (_| |_____\ V V /\__ \ __/ |_
+;;; |_| |_|_| |_|\__,_| \_/\_/ |___/\___|\__|
+;;;
+;; These functions are explained here:
+;; (find-multiwindow-intro "1. Introduction")
+;; (find-multiwindow-intro "2. `find-wset'")
+;; (find-multiwindow-intro "8. Adding support for new characters in
`find-wset'")
+
(defun find-wset-1 () (delete-other-windows))
(defun find-wset-2 () (split-window-vertically))
(defun find-wset-3 () (split-window-horizontally))
(defun find-wset-s () (split-window-sensibly (selected-window)))
(defun find-wset-o () (other-window 1))
+(defun find-wset-O () (other-window -1))
(defun find-wset-+ () (balance-windows))
(defun find-wset-_ () (eval (car sexps)) (setq sexps (cdr sexps)))
-(defun find-wset-\ ()) ; allow whitespace
+(defun find-wset-\ ()) ; allow whitespace
(defun find-wset (chars &rest sexps)
"Create a multi-window setting according to CHARS and SEXPS.
@@ -62,6 +77,18 @@ a function `find-wset-C'."
(apply 'find-wset chars sexps))))
+;; High-level functions.
+;; See: (find-multiwindow-intro "3. High-level words")
+;;
+(defun find-2a (a b) (find-wset "13_o_o" a b))
+(defun find-2b (a b) (find-wset "13_o_" a b))
+(defun find-3a (a b c) (find-wset "13_o2_o_o" a b c))
+(defun find-3b (a b c) (find-wset "13_o2_o_oo" a b c))
+(defun find-3c (a b c) (find-wset "13_o2_o_" a b c))
+
+
+
+
@@ -71,6 +98,10 @@ a function `find-wset-C'."
;;; | __/ __/ |_) | | || (__| | | | | | | | (_| | (__| <\__ \
;;; \___|\___| .__/|_|\__\___|_| |_| |_| |_|\__,_|\___|_|\_\___/
;;; |_|
+;; See:
+;; (find-multiwindow-intro "4. Several eepitch targets")
+;; (find-multiwindow-intro "5. Restarting eepitch targets")
+;; (find-multiwindow-intro "7. Eepitch blocks for two targets")
(defun ee-here (code)
"Example: (ee-here '(eepitch-xxx)) opens the target of (eepitch-xxx) here.
@@ -97,29 +128,15 @@ that. This is mainly for `find-wset'."
eepitch-buffer-name))
result))
-(defun find-wset-= () (ee-here (car sexps)) (setq sexps (cdr sexps)))
-(defun find-wset-! () (ee-here-reset (car sexps)) (setq sexps (cdr sexps)))
-(defun find-wset-O () (other-window -1))
-;; Mnemonic: "e" and "E" are both to prepare eepitch windows,
-;; and "E" is more aggressive than "e". See:
-;; (find-multiwindow-intro)
+;; Mnemonic: "e" and "E" are both for preparing eepitch windows,
+;; and "E" is more aggressive than "e" (it yells at you).
+;; Same for "=" and "!".
+(defun find-wset-= () (ee-here (car sexps)) (setq sexps (cdr sexps)))
(defun find-wset-e () (ee-here (car sexps)) (setq sexps (cdr sexps)))
+(defun find-wset-! () (ee-here-reset (car sexps)) (setq sexps (cdr sexps)))
(defun find-wset-E () (ee-here-reset (car sexps)) (setq sexps (cdr sexps)))
-
-
-;; Temporary hacks (?)
-;; See: (find-multiwindow-intro "High-level words")
-(defun find-2a (a b) (find-wset "13_o_o" a b))
-(defun find-2b (a b) (find-wset "13_o_" a b))
-(defun find-3a (a b c) (find-wset "13_o2_o_o" a b c))
-(defun find-3b (a b c) (find-wset "13_o2_o_oo" a b c))
-(defun find-3c (a b c) (find-wset "13_o2_o_" a b c))
-
-;; See:
-;; (find-multiwindow-intro "Several eepitch targets")
-;; (find-multiwindow-intro "Restarting eepitch targets")
(defun find-3ee (b c) (find-wset "13o2=o=o" b c))
(defun find-3EE (b c) (find-wset "13o2!o!o" b c))
- [elpa] externals/eev f974ef7 37/64: Added lots of comments to eev-plinks.el., (continued)
- [elpa] externals/eev f974ef7 37/64: Added lots of comments to eev-plinks.el., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 41323e0 58/64: Moved the function `ee-template0' to the file eev-template0.el., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 3325b83 41/64: Some clean-ups in the code for `find-eintro-links' and `find-einfo-links'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 8afeb43 45/64: Cleaned up eev-mode.el and other files., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 8179ff8 19/64: Make `find-eev-quick-intro\' and `find-emacs-keys-intro\' more important, Stefan Monnier, 2019/04/07
- [elpa] externals/eev 4e07159 57/64: Added some comments to eepitch.el., Stefan Monnier, 2019/04/07
- [elpa] externals/eev f6fd28a 62/64: Cleaned up the comments about `ee-code-c-d-filter-2'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev fc52991 32/64: Fontify the `find-xxx-intro' buffers., Stefan Monnier, 2019/04/07
- [elpa] externals/eev ca3dd97 53/64: Added sections to `find-channels-intro'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 92702c7 49/64: Made `find-pdf-text' ignore spurious formfeeds., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 7c396d0 26/64: Many changes in the intros; added eev-load.el,
Stefan Monnier <=
- [elpa] externals/eev 8a09aa4 59/64: Made the files eev-code.el and eev-brxxx.el more compatible with lexical binding., Stefan Monnier, 2019/04/07
- [elpa] externals/eev fb9f4c6 64/64: Added an explanation of why eev is not in ELPA yet., Stefan Monnier, 2019/04/07
- [elpa] externals/eev b0f124e 48/64: Added material to `find-escripts-intro' and `find-eev-quick-intro'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 9d39df9 36/64: Several clean-ups in eev-elinks.el and eev-tlinks.el., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 39a2cea 60/64: New file: eev-template0.el., Stefan Monnier, 2019/04/07
- [elpa] externals/eev c77ca3b 27/64: Rewrote eev-pdflike.el, added sections about it to (find-eev-quick-intro)., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 7162184 51/64: Added `find-texworkspdf-page'., Stefan Monnier, 2019/04/07
- [elpa] externals/eev b9baae6 17/64: First commit after an HD crash; lots of changes, Stefan Monnier, 2019/04/07
- [elpa] externals/eev 2518e75 50/64: Use "eev-beginner.el" instead of "eev-readme.el"., Stefan Monnier, 2019/04/07
- [elpa] externals/eev 51e636a 63/64: Deleted eev-pdflike-old.el., Stefan Monnier, 2019/04/07