Add visual mode, node registers, search and the jump list (stage 8c)
The rest of vim, on nodes. Visual mode takes in what lies between where it started and the cursor: on the canvas, every node the rectangle from one end's box to the other's touches; in the outline and the Note view, the nodes in between in reading order. V takes whole branches, Ctrl+click and Ctrl+drag pick with the mouse, and the operators take exactly what's selected: d, y, > and <, M, and the pickers on every node at once. Registers now hold text or nodes, so yy, dd and x keep what they take and p, P and ]p paste it, layout and links included. "+ is the system clipboard through arboard: nodes go there as Markdown in the user's format (## headings, a --- tag list, the body), and come back whole while the clipboard still holds them. clipboard = "unnamedplus" makes plain yanks use it, as in vim. . repeats the last change made with keys, with the text typed after it. / opens a Telescope-style search: fuzzy matches over titles, tags and bodies, best first, with the note of the one you're on beside them; n and N go on with it, and :find searches straight away. Each pane keeps a jump list for Ctrl-o and Ctrl-i that crosses documents and reopens closed ones. Capital marks lead into any document and, like the small ones, are kept in memory.ron. gd follows a cross-link, and :marks, :jumps and :registers list what they hold. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
abe3dc1d84
commit
7bec5bf3fc
45 files changed
+3922
-272
No files matched your search
@@ -58,6 +58,8 @@ what's wrong).
|
||||
a theme can say just `accent = "magenta"`.
|
||||
- The built-in theme has named styles (`<Space>s`), also put on by tags:
|
||||
`#question` (yellow, dashed), `#important` (red, thick), `#done` (faded).
|
||||
- `clipboard = "unnamedplus"` makes plain `y`, `d` and `p` use the system
|
||||
clipboard, as the vim setting of that name does.
|
||||
|
||||
## Keys
|
||||
|
||||
@@ -69,24 +71,34 @@ The plan for the everyday keys (all of them are in DESIGN.md):
|
||||
| `gh gj gk gl` | parent, next sibling, previous sibling, first child |
|
||||
| `o` `O` `a` | new sibling below / above, new child: type its title, Enter for the next one |
|
||||
| `i` or Enter | edit the title (Esc: vim keys inside it, Esc again: done) |
|
||||
| `dd` `x` | delete the branch / just the node |
|
||||
| `dd` `x` | delete the branch / just the node (kept in a register, as in vim) |
|
||||
| `yy` `p` `P` `]p` | yank the branch / paste after, before, as a child (`dd` then `p` moves a branch) |
|
||||
| `"a` `"+` | before `y`, `d` or `p`: register `a`; `"+` is the system clipboard (nodes go there as Markdown) |
|
||||
| `.` | the last change again |
|
||||
| `>>` `<<` | under the node above / out a level |
|
||||
| `u` `Ctrl-r` | undo / redo |
|
||||
| `za` `zf` `zi` | fold, auto-fold, focus |
|
||||
| `+` `-` | zoom in / out |
|
||||
| `K` | the body in a card beside the node (`i` edits it there) |
|
||||
| `C` `M` `v` | connect, move, select |
|
||||
| `v` `V` | select: the nodes between here and where you started (`V`: with their branches); then `d` `y` `>` `<` `M` or `<Space>c` act on all of them |
|
||||
| `M` | move the branch with `hjkl` (`M` again: just the node) |
|
||||
| `/` `n` `N` | search: titles, tags and bodies, fuzzily, with the note of each match beside it / the next match / the previous one |
|
||||
| `Ctrl-o` `Tab` | back to where you jumped from / forward again (across documents) |
|
||||
| `ma` `'a` `mA` | mark a node / go back to it / a capital mark: from any document |
|
||||
| `gd` | follow a cross-link |
|
||||
| `<Space>` | the action menu: `c` color, `t` tags, `b` documents, `i` inbox, `vo` outline, `vn` note… |
|
||||
| `Ctrl-w v` `Ctrl-w s` | split the pane side by side / stacked (`Ctrl-w hjkl` to move between them) |
|
||||
| `gt` `gT` | the next / previous document |
|
||||
| `:` `?` | command line, help (search it with `/`, Enter runs the key or command) |
|
||||
| `:e` `:new` `:bd` | open a document / make one / close it |
|
||||
| `:marks` `:jumps` `:registers` | what they hold: Enter goes there (or pastes) |
|
||||
| `:w` `:q` `ZZ` | save / close the pane (the last one quits) / save and close |
|
||||
|
||||
After the first key of a sequence (`g`, `z`, `d`, `<Space>`…), a popup lists
|
||||
what can follow. The right mouse button opens a menu of what you can do with
|
||||
a node. The wheel scrolls; with Shift or Alt held (or a wheel that tilts), it
|
||||
scrolls sideways.
|
||||
a node. Ctrl+click picks nodes one by one, and Ctrl+drag on the empty canvas
|
||||
picks the ones in its rectangle. The wheel scrolls; with Shift or Alt held
|
||||
(or a wheel that tilts), it scrolls sideways.
|
||||
|
||||
## Development
|
||||
|
||||
|
||||
Reference in new issue
Block a user