branch: externals/hyperbole commit 86af1cf259bbf6539b69a00bb7819c4f63a63169 Author: Bob Weiner <r...@gnu.org> Commit: Bob Weiner <r...@gnu.org>
Add Koutliner Org-like [M-down] and [M-up] tree movement commands --- ChangeLog | 13 +++++ HY-NEWS | 48 +++++++++-------- hib-kbd.el | 8 +-- kotl/EXAMPLE.kotl | 153 +++++++++++++++++++++++++++-------------------------- kotl/kotl-mode.el | 35 +++++++++++- man/hyperbole.html | 95 ++++++++++++++++++++++----------- man/hyperbole.info | Bin 582143 -> 583804 bytes man/hyperbole.pdf | Bin 1334690 -> 1335755 bytes man/hyperbole.texi | 85 ++++++++++++++++++----------- 9 files changed, 274 insertions(+), 163 deletions(-) diff --git a/ChangeLog b/ChangeLog index cce7ce1c29..6029e2b80c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2022-03-20 Bob Weiner <r...@gnu.org> +* HY-NEWS (New Tree Promotion/Demotion Keys): + man/hyperbole.texi (Promoting and Demoting): + kotl/EXAMPLE.kotl: Fix 3d2 promotion/demotion tables. + +* hib-kbd.el (kbd-key:modified-key-regexp): Allow for square brackets around modified keys, + like [M-down]. + +* kotl/kotl-mode.el (kotl-mode:move-tree-backward, kotl-mode:move-tree-forward): Add to replicate + Org mode M-up and M-down arrow tree movement and rebind these keys. + kotl/EXAMPLE.kotl: Doc new [M-down] and [M-up] key bindings. + man/hyperbole.texi (Relocating and Copying): + HY-NEWS (New Tree Movement Commands): Document these new commands. + * hyrolo.el (hyrolo-fgrep): Fix to match logical expressions across an entire tree of entries when no matches within individual subentries. diff --git a/HY-NEWS b/HY-NEWS index fc0fce009b..836985614b 100644 --- a/HY-NEWS +++ b/HY-NEWS @@ -161,6 +161,32 @@ Use a prefix arg with {TAB} to promote/demote Koutline trees when in a table since {TAB} moves between fields within a table. + *** New Tree Movement Commands: Like Org mode, {[M-down]} and {[M-up]} move + the current tree past or before other trees at the same level. With a + prefix argument, move past that many trees. + + *** New Tree Promotion/Demotion Keys: Tree promotion and demotion keys now + match many of the defaults in Org mode and Outline mode, plus some + easier to type ones. The tables below summarize which keys work whether + inside an Org table or outside. See "(hyperbole)Promoting and Demoting". + + |----------------------------+-----------------------------| + | Promotion Inside Org Table | Demotion Inside Org Table | + |----------------------------+-----------------------------| + | M-0 Shift-TAB or M-0 M-TAB | M-0 TAB | + | C-c C-, | C-c C-. | + | C-c C-< | C-c C-> | + |----------------------------+-----------------------------| + + |-----------------------------+----------------------------| + | Promotion Outside Org Table | Demotion Outside Org Table | + |-----------------------------+----------------------------| + | Shift-TAB or M-TAB | TAB | + | M-left | M-right | + | C-c C-, | C-c C-. | + | C-c C-< | C-c C-> | + |-----------------------------+----------------------------| + *** New Mail Tree Key Binding: The `kotl-mode:mail-tree' command that extracts the current view of a Koutline in text-only format and creates an outgoing email messge with it, has moved from {C-c @} @@ -174,28 +200,6 @@ directly into other buffers without having to copy to a mail/message buffer first. - *** New Tree Demotion/Promotion Keys: Tree promotion and demotion keys now - match the defaults in Org mode and Outline mode, plus some easier to - type ones. The tables below summarize which keys work whether inside - an Org table or outside. See "(hyperbole)Promoting and Demoting". - - |----------------------------+-----------------------------| - | Demotion Inside Org Table | Promotion Inside Org Table | - |----------------------------+-----------------------------| - | M-0 TAB | M-0 Shift-TAB or M-0 M-TAB | - | C-c C-, | C-c C-. | - | C-c C-< | C-c C-> | - |----------------------------+-----------------------------| - - |----------------------------+-----------------------------| - | Demotion Outside Org Table | Promotion Outside Org Table | - |----------------------------+-----------------------------| - | TAB | Shift-TAB or M-TAB | - | M-left-arrow | M-right-arrow | - | C-c C-, | C-c C-. | - | C-c C-< | C-c C-> | - |----------------------------+-----------------------------| - *** Klink Copy: New commands that copy a relative or absolute reference to a kcell (a klink) to the kill ring or to an Emacs single-letter named register: diff --git a/hib-kbd.el b/hib-kbd.el index b3c0a620d1..5a6a913ac2 100644 --- a/hib-kbd.el +++ b/hib-kbd.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 22-Nov-91 at 01:37:57 -;; Last-Mod: 24-Jan-22 at 00:18:33 by Bob Weiner +;; Last-Mod: 20-Mar-22 at 16:25:31 by Bob Weiner ;; ;; Copyright (C) 1991-2021 Free Software Foundation, Inc. ;; See the "HY-COPY" file for license information. @@ -54,8 +54,8 @@ "Regexp that matches to any of the dedicated keyboard key names in lower or uppercase.") (defvar kbd-key:modified-key-regexp - (concat "\\(\\([ACHMS]-\\|kp-\\)+\\)\\s-*\\(<?\\<" kbd-key:named-key-regexp "\\>>?" - "\\|<?[fF][0-9][0-9]?>?\\|<[a-zA-Z0-9]+>\\|.\\)") + (concat "\\(\\[?\\([ACHMS]-\\|kp-\\)+\\)\\s-*\\(\\(<?\\<" kbd-key:named-key-regexp "\\>>?" + "\\|<?[fF][0-9][0-9]?>?\\|<[a-zA-Z0-9]+>\\|.\\)\\]?\\)") "Regexp matching to a single modified keyboard key within a human-readable string. Group 1 matches to the set of modifier keys. Group 3 matches to the unmodified key.") @@ -119,7 +119,7 @@ Any key sequence must be a string of one of the following: ;; Match only when start delimiter is preceded by whitespace, ;; double quotes or is the 1st buffer character, so do not ;; match to things like ${variable}. - (when (memq (char-before start) '(nil ?\ ?\t ?\n ?\j ?\f ?\")) + (when (memq (char-before start) '(nil ?\ ?\t ?\n ?\r ?\f ?\")) (when (and (stringp key-series) (not (eq key-series ""))) ;; Replace any ${} internal or env vars; leave diff --git a/kotl/EXAMPLE.kotl b/kotl/EXAMPLE.kotl index f419fb3458..7b6efacf50 100644 --- a/kotl/EXAMPLE.kotl +++ b/kotl/EXAMPLE.kotl @@ -102,6 +102,9 @@ Copying and moving only work within a single outline right now, so don't try to move or copy trees to another Koutline file. + {[M-down]} - Move current tree past prefix arg same level trees. + {[M-up]} - Move current tree back prefix arg same level trees. + {C-c c} - Copy <tree> to follow as sibling of <cell>. {C-u C-c c} - Copy <tree> to follow as first child of <cell>. @@ -357,21 +360,21 @@ 3d2. Here are two table examples: |----------------------------+-----------------------------| - | Demotion Inside Org Table | Promotion Inside Org Table | + | Promotion Inside Org Table | Demotion Inside Org Table | |----------------------------+-----------------------------| - | M-0 TAB | M-0 Shift-TAB or M-0 M-TAB | + | M-0 Shift-TAB or M-0 M-TAB | M-0 TAB | | C-c C-, | C-c C-. | | C-c C-< | C-c C-> | |----------------------------+-----------------------------| - |----------------------------+-----------------------------| - | Demotion Outside Org Table | Promotion Outside Org Table | - |----------------------------+-----------------------------| - | TAB | Shift-TAB or M-TAB | - | M-left-arrow | M-right-arrow | - | C-c C-, | C-c C-. | - | C-c C-< | C-c C-> | - |----------------------------+-----------------------------| + |-----------------------------+----------------------------| + | Promotion Outside Org Table | Demotion Outside Org Table | + |-----------------------------+----------------------------| + | Shift-TAB or M-TAB | TAB | + | M-left | M-right | + | C-c C-, | C-c C-. | + | C-c C-< | C-c C-> | + |-----------------------------+----------------------------| To toggle table editing mode on or off, press the Action Key on any of the table | symbols and then edit as you @@ -410,133 +413,133 @@ alpha ;; label-type [[0 (idstamp 0 creator "r...@gnu.org" create-time "20220117:22:23:52" id-counter 82 file "/Users/bk/Dropbox/emacs/hyperbole/kotl/EXAMPLE.kotl")] [20 - (kcell t idstamp 20 rear-nonsticky t no-fill t create-time "19940104:17:38:28" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:28" no-fill t rear-nonsticky t idstamp 20 kcell t)] [2 - (kcell t idstamp 2 rear-nonsticky t no-fill t create-time "19940104:17:38:28" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:28" no-fill t rear-nonsticky t idstamp 2 kcell t)] [34 - (kcell t idstamp 34 rear-nonsticky t create-time "19940610:16:43:55" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:16:43:55" rear-nonsticky t idstamp 34 kcell t)] [35 - (kcell t idstamp 35 rear-nonsticky t create-time "19940610:16:44:03" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:16:44:03" rear-nonsticky t idstamp 35 kcell t)] [4 - (kcell t idstamp 4 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 4 kcell t)] [5 - (kcell t idstamp 5 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 5 kcell t)] [6 - (kcell t idstamp 6 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 6 kcell t)] [14 - (kcell t idstamp 14 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 14 kcell t)] [67 - (kcell t idstamp 67 rear-nonsticky t no-fill t create-time "19951028:04:29:13" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951028:04:29:13" no-fill t rear-nonsticky t idstamp 67 kcell t)] [15 - (kcell t idstamp 15 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 15 kcell t)] [31 - (kcell t idstamp 31 rear-nonsticky t create-time "19940306:18:11:43" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940306:18:11:43" rear-nonsticky t idstamp 31 kcell t)] [7 - (kcell t idstamp 7 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 7 kcell t)] [46 - (kcell t idstamp 46 rear-nonsticky t create-time "19950614:21:35:17" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19950614:21:35:17" rear-nonsticky t idstamp 46 kcell t)] [43 - (kcell t idstamp 43 rear-nonsticky t create-time "19940610:22:00:46" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:22:00:46" rear-nonsticky t idstamp 43 kcell t)] [22 - (kcell t idstamp 22 rear-nonsticky t create-time "19940127:22:41:42" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940127:22:41:42" rear-nonsticky t idstamp 22 kcell t)] [82 - (fontified nil kcell t idstamp 82 creator "r...@gnu.org" create-time "20220126:04:52:26" no-fill t)] + (no-fill t create-time "20220126:04:52:26" creator "r...@gnu.org" idstamp 82 kcell t fontified t)] [32 - (kcell t idstamp 32 rear-nonsticky t create-time "19940610:16:31:28" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:16:31:28" rear-nonsticky t idstamp 32 kcell t)] [41 - (kcell t idstamp 41 rear-nonsticky t create-time "19940610:18:55:09" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:18:55:09" rear-nonsticky t idstamp 41 kcell t)] [42 - (kcell t idstamp 42 rear-nonsticky t create-time "19940610:18:55:57" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:18:55:57" rear-nonsticky t idstamp 42 kcell t)] [33 - (kcell t idstamp 33 rear-nonsticky t create-time "19940610:16:31:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:16:31:29" rear-nonsticky t idstamp 33 kcell t)] [47 - (kcell t idstamp 47 rear-nonsticky t no-fill t create-time "19951022:22:59:26" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951022:22:59:26" no-fill t rear-nonsticky t idstamp 47 kcell t)] [8 - (kcell t idstamp 8 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 8 kcell t)] [28 - (kcell t idstamp 28 rear-nonsticky t create-time "19940128:22:50:44" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940128:22:50:44" rear-nonsticky t idstamp 28 kcell t)] [29 - (kcell t idstamp 29 rear-nonsticky t create-time "19940128:22:50:54" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940128:22:50:54" rear-nonsticky t idstamp 29 kcell t)] [10 - (kcell t idstamp 10 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 10 kcell t)] [30 - (kcell t idstamp 30 rear-nonsticky t create-time "19940129:00:27:59" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940129:00:27:59" rear-nonsticky t idstamp 30 kcell t)] [62 - (kcell t idstamp 62 rear-nonsticky t no-fill t create-time "19951026:08:32:57" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951026:08:32:57" no-fill t rear-nonsticky t idstamp 62 kcell t)] [70 - (kcell t idstamp 70 rear-nonsticky t no-fill t create-time "19951030:19:18:49" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951030:19:18:49" no-fill t rear-nonsticky t idstamp 70 kcell t)] [71 - (kcell t idstamp 71 rear-nonsticky t no-fill t create-time "19951030:19:19:40" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951030:19:19:40" no-fill t rear-nonsticky t idstamp 71 kcell t)] [73 - (kcell t idstamp 73 rear-nonsticky t no-fill t create-time "19951030:19:23:09" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951030:19:23:09" no-fill t rear-nonsticky t idstamp 73 kcell t)] [63 - (kcell t idstamp 63 rear-nonsticky t no-fill t create-time "19951026:19:31:34" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951026:19:31:34" no-fill t rear-nonsticky t idstamp 63 kcell t)] [64 - (kcell t idstamp 64 rear-nonsticky t no-fill t create-time "19951026:19:33:01" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951026:19:33:01" no-fill t rear-nonsticky t idstamp 64 kcell t)] [69 - (kcell t idstamp 69 rear-nonsticky t no-fill t create-time "19951029:06:24:35" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951029:06:24:35" no-fill t rear-nonsticky t idstamp 69 kcell t)] [68 - (kcell t idstamp 68 rear-nonsticky t no-fill t create-time "19951029:06:24:27" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951029:06:24:27" no-fill t rear-nonsticky t idstamp 68 kcell t)] [65 - (kcell t idstamp 65 rear-nonsticky t no-fill t create-time "19951026:19:33:08" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951026:19:33:08" no-fill t rear-nonsticky t idstamp 65 kcell t)] [66 - (kcell t idstamp 66 rear-nonsticky t no-fill t create-time "19951026:19:33:15" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951026:19:33:15" no-fill t rear-nonsticky t idstamp 66 kcell t)] [77 - (kcell t idstamp 77 rear-nonsticky t no-fill t create-time "19980226:19:54:44" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19980226:19:54:44" no-fill t rear-nonsticky t idstamp 77 kcell t)] [48 - (kcell t idstamp 48 rear-nonsticky t no-fill t create-time "19951023:05:55:19" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:05:55:19" no-fill t rear-nonsticky t idstamp 48 kcell t)] [57 - (kcell t idstamp 57 rear-nonsticky t no-fill t create-time "19951023:10:07:06" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:10:07:06" no-fill t rear-nonsticky t idstamp 57 kcell t)] [58 - (kcell t idstamp 58 rear-nonsticky t no-fill t create-time "19951023:10:07:26" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:10:07:26" no-fill t rear-nonsticky t idstamp 58 kcell t)] [49 - (kcell t idstamp 49 rear-nonsticky t no-fill t create-time "19951023:05:55:55" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:05:55:55" no-fill t rear-nonsticky t idstamp 49 kcell t)] [55 - (kcell t idstamp 55 rear-nonsticky t no-fill t create-time "19951023:08:56:41" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:08:56:41" no-fill t rear-nonsticky t idstamp 55 kcell t)] [50 - (kcell t idstamp 50 rear-nonsticky t no-fill t create-time "19951023:05:57:26" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:05:57:26" no-fill t rear-nonsticky t idstamp 50 kcell t)] [51 - (kcell t idstamp 51 rear-nonsticky t no-fill t create-time "19951023:05:58:31" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:05:58:31" no-fill t rear-nonsticky t idstamp 51 kcell t)] [56 - (kcell t idstamp 56 rear-nonsticky t no-fill t create-time "19951023:08:57:09" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:08:57:09" no-fill t rear-nonsticky t idstamp 56 kcell t)] [52 - (kcell t idstamp 52 rear-nonsticky t no-fill t create-time "19951023:05:59:59" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:05:59:59" no-fill t rear-nonsticky t idstamp 52 kcell t)] [53 - (kcell t idstamp 53 rear-nonsticky t no-fill t create-time "19951023:06:00:48" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:06:00:48" no-fill t rear-nonsticky t idstamp 53 kcell t)] [54 - (kcell t idstamp 54 rear-nonsticky t no-fill t create-time "19951023:06:05:50" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951023:06:05:50" no-fill t rear-nonsticky t idstamp 54 kcell t)] [26 - (kcell t idstamp 26 rear-nonsticky t create-time "19940128:03:56:23" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940128:03:56:23" rear-nonsticky t idstamp 26 kcell t)] [27 - (kcell t idstamp 27 rear-nonsticky t create-time "19940128:22:36:54" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940128:22:36:54" rear-nonsticky t idstamp 27 kcell t)] [59 - (kcell t idstamp 59 rear-nonsticky t no-fill t create-time "19951024:03:40:05" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951024:03:40:05" no-fill t rear-nonsticky t idstamp 59 kcell t)] [60 - (kcell t idstamp 60 rear-nonsticky t no-fill t create-time "19951024:03:40:13" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951024:03:40:13" no-fill t rear-nonsticky t idstamp 60 kcell t)] [61 - (kcell t idstamp 61 rear-nonsticky t no-fill t create-time "19951024:03:40:42" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19951024:03:40:42" no-fill t rear-nonsticky t idstamp 61 kcell t)] [1 - (kcell t idstamp 1 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 1 kcell t)] [11 - (kcell t idstamp 11 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 11 kcell t)] [80 - (fontified nil kcell t idstamp 80 creator "r...@gnu.org" create-time "20220117:22:26:40" no-fill t)] + (no-fill t create-time "20220117:22:26:40" creator "r...@gnu.org" idstamp 80 kcell t fontified t)] [81 - (fontified nil kcell t idstamp 81 creator "r...@gnu.org" create-time "20220117:22:26:47" no-fill t)] + (no-fill t create-time "20220117:22:26:47" creator "r...@gnu.org" idstamp 81 kcell t fontified t)] [78 - (fontified nil kcell t idstamp 78 creator "r...@gnu.org" create-time "20220117:22:26:33" no-fill t)] + (no-fill t create-time "20220117:22:26:33" creator "r...@gnu.org" idstamp 78 kcell t fontified t)] [12 - (kcell t idstamp 12 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 12 kcell t)] [44 - (kcell t idstamp 44 rear-nonsticky t create-time "19940728:21:56:49" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940728:21:56:49" rear-nonsticky t idstamp 44 kcell t)] [36 - (kcell t idstamp 36 rear-nonsticky t create-time "19940610:16:49:34" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:16:49:34" rear-nonsticky t idstamp 36 kcell t)] [37 - (kcell t idstamp 37 rear-nonsticky t create-time "19940610:16:50:02" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:16:50:02" rear-nonsticky t idstamp 37 kcell t)] [38 - (kcell t idstamp 38 rear-nonsticky t create-time "19940610:16:50:13" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940610:16:50:13" rear-nonsticky t idstamp 38 kcell t)] [13 - (kcell t idstamp 13 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 13 kcell t)] [16 - (kcell t idstamp 16 rear-nonsticky t create-time "19940104:17:38:29" creator "r...@gnu.org")] + (creator "r...@gnu.org" create-time "19940104:17:38:29" rear-nonsticky t idstamp 16 kcell t)] nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] diff --git a/kotl/kotl-mode.el b/kotl/kotl-mode.el index 851d5a23f5..feec7988da 100644 --- a/kotl/kotl-mode.el +++ b/kotl/kotl-mode.el @@ -3,7 +3,7 @@ ;; Author: Bob Weiner ;; ;; Orig-Date: 6/30/93 -;; Last-Mod: 13-Feb-22 at 10:08:36 by Bob Weiner +;; Last-Mod: 20-Mar-22 at 15:36:24 by Bob Weiner ;; ;; Copyright (C) 1993-2021 Free Software Foundation, Inc. ;; See the "../HY-COPY" file for license information. @@ -2395,6 +2395,39 @@ If ARG is a non-positive number, nothing is done." (kview:add-cell "1" 1))) (kotl-mode:to-valid-position)))) +(defun kotl-mode:move-tree-backward (&optional num-trees) + "Move current cell before prefix arg `num-trees' at the same level. +If arg is 0, make it 1; if arg is negative, move to before that number of trees." + (interactive "p") + (unless (and (integerp num-trees) + (/= num-trees 0)) + (setq num-trees 1)) + (kotl-mode:move-tree-forward (- num-trees))) + +(defun kotl-mode:move-tree-forward (&optional num-trees) + "Move current tree after prefix arg `num-trees' at the same level. +If arg is 0, make it 1; if arg is negative, move prior to that number of trees." + (interactive "p") + (unless (and (integerp num-trees) + (/= num-trees 0)) + (setq num-trees 1)) + (let* ((n num-trees) + (to-func (if (> n 0) #'kcell-view:forward #'kcell-view:backward)) + (move-func (if (> n 0) #'kotl-mode:move-after #'kotl-mode:move-before)) + (increment (if (> n 0) -1 1)) + (from-tree (kcell-view:label)) + (point-offset (- (point) (kcell-view:start))) + to-tree) + (save-excursion (while (and (/= n 0) + (funcall to-func)) + (setq n (+ n increment)) + (when (zerop n) + (setq to-tree (kcell-view:label))))) + (if to-tree + (goto-char (+ (move-func from-tree to-tree nil) + point-offset)) + (error "(kotl-mode:move-forward): Cannot move past %d trees at the same level" num-trees)))) + (defun kotl-mode:promote-tree (arg) "Move current tree a maximum of prefix ARG levels higher in current view. Each cell is refilled iff its `no-fill' attribute is nil and diff --git a/man/hyperbole.html b/man/hyperbole.html index d92ef5e1ec..4bce78d34a 100644 --- a/man/hyperbole.html +++ b/man/hyperbole.html @@ -370,7 +370,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P> <PRE> Edition 8.0.0pre -Printed March 12, 2022. +Printed March 20, 2022. Published by the Free Software Foundation, Inc. Author: Bob Weiner @@ -5532,16 +5532,36 @@ substructure) are promoted and demoted, not individual cells. </p> <span id="index-koutliner_002c-TAB"></span> <span id="index-koutliner_002c-M_002dTAB"></span> +<span id="index-koutliner_002c-Shift_002dTAB"></span> +<span id="index-koutliner_002c-M_002dleft"></span> +<span id="index-koutliner_002c-M_002dright"></span> +<span id="index-koutliner_002c-C_002dc-C_002d_002c"></span> +<span id="index-koutliner_002c-C_002dc-C_002d_002e"></span> +<span id="index-koutliner_002c-C_002dc-C_002d_003e"></span> +<span id="index-koutliner_002c-C_002dc-C_002d_003c"></span> + +<div class="example"> +<pre class="example">|-----------------------------+----------------------------| +| Promotion Outside Org Table | Demotion Outside Org Table | +|-----------------------------+----------------------------| +| Shift-TAB or M-TAB | TAB | +| M-left | M-right | +| C-c C-, | C-c C-. | +| C-c C-< | C-c C-> | +|-----------------------------+----------------------------| +</pre></div> + + <p>Trees may be demoted or promoted by pressing <tt class="key">TAB</tt> or -<kbd>{M-<span class="key">TAB</span>}</kbd> (or <kbd>{<span class="key">SHIFT</span>-<span class="key">TAB</span>}</kbd>) respectively, as in -most outliners today. <kbd>{M-0 <span class="key">TAB</span>}</kbd> and <kbd>{M-0 M-<span class="key">TAB</span>}</kbd> -demote and promote trees and additionally refill each cell that is not -specially marked to prevent refilling. See <a href="#Filling">Filling</a>. A positive or -negative prefix argument to these commands promotes or demotes the tree -up to a maximum of the number of levels given by the argument. The -outline may not support movement of the tree by the number of levels -requested, however, in which case the maximal possible adjustment is -made. +<kbd>{M-<span class="key">TAB</span>}</kbd> (or <kbd>{<span class="key">SHIFT</span>-<span class="key">TAB</span>}</kbd>) respectively, as +in most outliners today. <kbd>{M-0 <span class="key">TAB</span>}</kbd> and <kbd>{M-0 +M-<span class="key">TAB</span>}</kbd> demote and promote trees and additionally refill each +cell that is not specially marked to prevent refilling. +See <a href="#Filling">Filling</a>. A positive or negative prefix argument to these +commands promotes or demotes the tree up to a maximum of the number of +levels given by the argument. The outline may not support movement of +the tree by the number of levels requested, however, in which case the +maximal possible adjustment is made. </p> <span id="index-koutliner_002c-M_002d1-TAB"></span> <span id="index-inserting-tabs"></span> @@ -5560,7 +5580,7 @@ Use <kbd>{M-1 <span class="key">TAB</span>}</kbd> to toggle the <tt class="key"> </p> <span id="index-Org-tables"></span> -<p>The Koutliner supports Org Table editing, see <a href="https://www.gnu.org/software/emacs/manual/html_mono/org.html#Tables">Tables</a> in <cite>the Org +<p>The Koutliner also supports Org Table editing, see <a href="https://www.gnu.org/software/emacs/manual/html_mono/org.html#Tables">Tables</a> in <cite>the Org Mode Manual</cite>, via Org table minor mode. Use <kbd>{M-x orgtbl-mode <span class="key">RET</span>}</kbd> to toggle this on and off. A press of the Action Key on a <code>|</code> symbol, also toggles this minor mode on or off. @@ -5578,18 +5598,9 @@ moves between fields within a table. </p> <div class="example"> <pre class="example">|----------------------------+-----------------------------| -| Demotion Inside Org Table | Promotion Inside Org Table | +| Promotion Inside Org Table | Demotion Inside Org Table | |----------------------------+-----------------------------| -| M-0 TAB | M-0 Shift-TAB or M-0 M-TAB | -| C-c C-, | C-c C-. | -| C-c C-< | C-c C-> | -|----------------------------+-----------------------------| - -|----------------------------+-----------------------------| -| Demotion Outside Org Table | Promotion Outside Org Table | -|----------------------------+-----------------------------| -| TAB | Shift-TAB or M-TAB | -| M-left-arrow | M-right-arrow | +| M-0 Shift-TAB or M-0 M-TAB | M-0 TAB | | C-c C-, | C-c C-. | | C-c C-< | C-c C-> | |----------------------------+-----------------------------| @@ -5606,14 +5617,20 @@ Next: <a href="#Moving-Around" accesskey="n" rel="next">Moving Around</a>, Previ <span id="index-tree_002c-moving"></span> <span id="index-Action-Key_002c-cell-argument"></span> <span id="index-koutliner_002c-Action-Key_002c-cell-argument"></span> +<p>Like Org mode, you can move the tree rooted at point past trees rooted +at the same level with <kbd>{M-down}</kbd> and before trees with <kbd>{M-up}</kbd>. +Give a prefix argument to move past that many other trees. (A 0 valued +argument is automatically changed to 1). +</p> <p>For maximum flexibility in rearranging outlines, there are commands -that move or copy entire trees anywhere within the outline. Each of -these commands prompts for the label of the root cell to move or copy -and for a second cell which specifies the new location for the moved -or copied tree. You may either accept the default provided, type in -the cell label, or when a mouse is available, simply double click with -the Action Key on the contents of a cell. The Koutliner knows to use -the cell’s label in such cases. +that move or copy entire trees anywhere within the outline as +described in the table below. Each of these commands prompts for the +label of the root cell to move or copy and for a second cell which +specifies the new location for the moved or copied tree. You may +either accept the default provided, type in the cell label, or when a +mouse is available, simply double click with the Action Key on the +contents of a cell. The Koutliner knows to use the cell’s label in +such cases. </p> <p>In the following commands, words delimited with <> represent the arguments for which each command prompts. Note how the use of prefix @@ -5621,7 +5638,16 @@ arguments changes each command’s behavior from insertion at the sibling level to insertion at the child level. </p> <dl compact="compact"> -<dd><span id="index-C_002dc-c"></span> +<dd><span id="index-M_002ddown"></span> +</dd> +<dt><kbd>{M-down}</kbd></dt> +<dd><p>Move current tree past prefix arg same level trees. +<span id="index-M_002dup"></span> +</p></dd> +<dt><kbd>{M-up}</kbd></dt> +<dd><p>Move current tree back prefix arg same level trees. +</p> +<span id="index-C_002dc-c"></span> </dd> <dt><kbd>{C-c c}</kbd></dt> <dd><p>Copy <tree> to be the successor of <cell>. @@ -12818,6 +12844,10 @@ Next: <a href="#Function" accesskey="n" rel="next">Function</a>, Previous: <a hr <tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-a"><code>koutliner, C-c a</code></a>:</td><td> </td><td valign="top"><a href="#Adding-and-Killing">Adding and Killing</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-b"><code>koutliner, C-c b</code></a>:</td><td> </td><td valign="top"><a href="#View-Specs">View Specs</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-b-1"><code>koutliner, C-c b</code></a>:</td><td> </td><td valign="top"><a href="#View-Specs">View Specs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-C_002d_002c"><code>koutliner, C-c C-,</code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-C_002d_002e"><code>koutliner, C-c C-.</code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-C_002d_003c"><code>koutliner, C-c C-<</code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-C_002d_003e"><code>koutliner, C-c C-></code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-C_002di"><code>koutliner, C-c C-i</code></a>:</td><td> </td><td valign="top"><a href="#Cell-Attributes">Cell Attributes</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-C_002dk"><code>koutliner, C-c C-k</code></a>:</td><td> </td><td valign="top"><a href="#Adding-and-Killing">Adding and Killing</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-C_002dc-C_002dl"><code>koutliner, C-c C-l</code></a>:</td><td> </td><td valign="top"><a href="#Autonumbering">Autonumbering</a></td></tr> @@ -12845,9 +12875,12 @@ Next: <a href="#Function" accesskey="n" rel="next">Function</a>, Previous: <a hr <tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002d0-C_002dc-t"><code>koutliner, M-0 C-c t</code></a>:</td><td> </td><td valign="top"><a href="#Transposing">Transposing</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002d1-TAB"><code>koutliner, M-1 <span class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002dj"><code>koutliner, M-j</code></a>:</td><td> </td><td valign="top"><a href="#Filling">Filling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002dleft"><code>koutliner, M-left</code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002dq"><code>koutliner, M-q</code></a>:</td><td> </td><td valign="top"><a href="#Filling">Filling</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002dRET"><code>koutliner, M-<span class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a href="#Hiding-and-Showing">Hiding and Showing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002dright"><code>koutliner, M-right</code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-M_002dTAB"><code>koutliner, M-<span class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-koutliner_002c-Shift_002dTAB"><code>koutliner, Shift-<span class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td></td><td valign="top"><a href="#index-koutliner_002c-TAB"><code>koutliner, <span class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td colspan="4"> <hr></td></tr> <tr><th id="Key-Index_ky_letter-L">L</th><td></td><td></td></tr> @@ -12859,6 +12892,7 @@ Next: <a href="#Function" accesskey="n" rel="next">Function</a>, Previous: <a hr <tr><td></td><td valign="top"><a href="#index-M_002d0-M_002dTAB"><code>M-0 M-<span class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002d0-TAB"><code>M-0 <span class="key">TAB</span></code></a>:</td><td> </td><td valign="top"><a href="#Promoting-and-Demoting">Promoting and Demoting</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002db"><code>M-b</code></a>:</td><td> </td><td valign="top"><a href="#Menus">Menus</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-M_002ddown"><code>M-down</code></a>:</td><td> </td><td valign="top"><a href="#Relocating-and-Copying">Relocating and Copying</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002df"><code>M-f</code></a>:</td><td> </td><td valign="top"><a href="#Menus">Menus</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002do"><code>M-o</code></a>:</td><td> </td><td valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002do-1"><code>M-o</code></a>:</td><td> </td><td valign="top"><a href="#Default-Hyperbole-Bindings">Default Hyperbole Bindings</a></td></tr> @@ -12870,6 +12904,7 @@ Next: <a href="#Function" accesskey="n" rel="next">Function</a>, Previous: <a hr <tr><td></td><td valign="top"><a href="#index-M_002dRET"><code>M-<span class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002dRET-1"><code>M-<span class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a href="#Implicit-Button-Types">Implicit Button Types</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002dRET-2"><code>M-<span class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a href="#Default-Hyperbole-Bindings">Default Hyperbole Bindings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-M_002dup"><code>M-up</code></a>:</td><td> </td><td valign="top"><a href="#Relocating-and-Copying">Relocating and Copying</a></td></tr> <tr><td></td><td valign="top"><a href="#index-M_002dx-kotl_002dmode_003ashow_002dsubtree"><code>M-x kotl-mode:show-subtree</code></a>:</td><td> </td><td valign="top"><a href="#Hiding-and-Showing">Hiding and Showing</a></td></tr> <tr><td></td><td valign="top"><a href="#index-middle-mouse-key-1"><code>middle mouse key</code></a>:</td><td> </td><td valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr> <tr><td colspan="4"> <hr></td></tr> diff --git a/man/hyperbole.info b/man/hyperbole.info index db7d7ca942..c2d76b7bc5 100644 Binary files a/man/hyperbole.info and b/man/hyperbole.info differ diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf index 4fbc706a03..e2279afbc3 100644 Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ diff --git a/man/hyperbole.texi b/man/hyperbole.texi index 233d34cac8..199bbca101 100644 --- a/man/hyperbole.texi +++ b/man/hyperbole.texi @@ -7,7 +7,7 @@ @c Author: Bob Weiner @c @c Orig-Date: 6-Nov-91 at 11:18:03 -@c Last-Mod: 12-Mar-22 at 15:01:03 by Bob Weiner +@c Last-Mod: 20-Mar-22 at 22:13:17 by Bob Weiner @c %**start of header (This is for running Texinfo on a region.) @setfilename hyperbole.info @@ -156,7 +156,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P> <PRE> Edition 8.0.0pre -Printed March 12, 2022. +Printed March 20, 2022. Published by the Free Software Foundation, Inc. Author: Bob Weiner @@ -198,7 +198,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @example Edition 8.0.0pre -March 12, 2022 +March 20, 2022 Published by the Free Software Foundation, Inc. Author: Bob Weiner @@ -4648,16 +4648,37 @@ substructure) are promoted and demoted, not individual cells. @kindex koutliner, @key{TAB} @kindex koutliner, M-@key{TAB} +@kindex koutliner, Shift-@key{TAB} +@kindex koutliner, M-left +@kindex koutliner, M-right +@kindex koutliner, C-c C-, +@kindex koutliner, C-c C-. +@kindex koutliner, C-c C-> +@kindex koutliner, C-c C-< + +@example +@noindent +|-----------------------------+----------------------------| +| Promotion Outside Org Table | Demotion Outside Org Table | +|-----------------------------+----------------------------| +| Shift-TAB or M-TAB | TAB | +| M-left | M-right | +| C-c C-, | C-c C-. | +| C-c C-< | C-c C-> | +|-----------------------------+----------------------------| +@end example + + Trees may be demoted or promoted by pressing @key{TAB} or -@bkbd{M-@key{TAB}} (or @bkbd{@key{SHIFT}-@key{TAB}}) respectively, as in -most outliners today. @bkbd{M-0 @key{TAB}} and @bkbd{M-0 M-@key{TAB}} -demote and promote trees and additionally refill each cell that is not -specially marked to prevent refilling. @xref{Filling}. A positive or -negative prefix argument to these commands promotes or demotes the tree -up to a maximum of the number of levels given by the argument. The -outline may not support movement of the tree by the number of levels -requested, however, in which case the maximal possible adjustment is -made. +@bkbd{M-@key{TAB}} (or @bkbd{@key{SHIFT}-@key{TAB}}) respectively, as +in most outliners today. @bkbd{M-0 @key{TAB}} and @bkbd{M-0 +M-@key{TAB}} demote and promote trees and additionally refill each +cell that is not specially marked to prevent refilling. +@xref{Filling}. A positive or negative prefix argument to these +commands promotes or demotes the tree up to a maximum of the number of +levels given by the argument. The outline may not support movement of +the tree by the number of levels requested, however, in which case the +maximal possible adjustment is made. @kindex koutliner, M-1 @key{TAB} @cindex inserting tabs @@ -4676,7 +4697,7 @@ Use @bkbd{M-1 @key{TAB}} to toggle the @key{TAB} and @cindex Org tables -The Koutliner supports Org Table editing, @pxref{Tables,,, org, the Org +The Koutliner also supports Org Table editing, @pxref{Tables,,, org, the Org Mode Manual}, via Org table minor mode. Use @bkbd{M-x orgtbl-mode @key{RET}} to toggle this on and off. A press of the Action Key on a @code{|} symbol, also toggles this minor mode on or off. @@ -4695,18 +4716,9 @@ moves between fields within a table. @example @noindent |----------------------------+-----------------------------| -| Demotion Inside Org Table | Promotion Inside Org Table | -|----------------------------+-----------------------------| -| M-0 TAB | M-0 Shift-TAB or M-0 M-TAB | -| C-c C-, | C-c C-. | -| C-c C-< | C-c C-> | -|----------------------------+-----------------------------| - +| Promotion Inside Org Table | Demotion Inside Org Table | |----------------------------+-----------------------------| -| Demotion Outside Org Table | Promotion Outside Org Table | -|----------------------------+-----------------------------| -| TAB | Shift-TAB or M-TAB | -| M-left-arrow | M-right-arrow | +| M-0 Shift-TAB or M-0 M-TAB | M-0 TAB | | C-c C-, | C-c C-. | | C-c C-< | C-c C-> | |----------------------------+-----------------------------| @@ -4719,14 +4731,20 @@ moves between fields within a table. @cindex tree, moving @cindex Action Key, cell argument @kindex koutliner, Action Key, cell argument +Like Org mode, you can move the tree rooted at point past trees rooted +at the same level with @bkbd{M-down} and before trees with @bkbd{M-up}. +Give a prefix argument to move past that many other trees. (A 0 valued +argument is automatically changed to 1). + For maximum flexibility in rearranging outlines, there are commands -that move or copy entire trees anywhere within the outline. Each of -these commands prompts for the label of the root cell to move or copy -and for a second cell which specifies the new location for the moved -or copied tree. You may either accept the default provided, type in -the cell label, or when a mouse is available, simply double click with -the Action Key on the contents of a cell. The Koutliner knows to use -the cell's label in such cases. +that move or copy entire trees anywhere within the outline as +described in the table below. Each of these commands prompts for the +label of the root cell to move or copy and for a second cell which +specifies the new location for the moved or copied tree. You may +either accept the default provided, type in the cell label, or when a +mouse is available, simply double click with the Action Key on the +contents of a cell. The Koutliner knows to use the cell's label in +such cases. In the following commands, words delimited with <> represent the arguments for which each command prompts. Note how the use of prefix @@ -4734,6 +4752,11 @@ arguments changes each command's behavior from insertion at the sibling level to insertion at the child level. @table @asis +@kitem M-down +Move current tree past prefix arg same level trees. +@kitem M-up +Move current tree back prefix arg same level trees. + @kitem C-c c Copy <tree> to be the successor of <cell>. @kitem C-u C-c c