docs(client): document bare gl/gL remove-checkbox + tick parity gap P1 #3
CI / cargo fmt --check (push) Successful in 17s
CI / cargo clippy (push) Successful in 29s
CI / cargo test (push) Successful in 26s
CI / editor keymaps (push) Successful in 1m22s

Update the lists keymap tables and group hints (gl/gL = remove checkbox;
remove-done is command-only via :NuwikiRemoveDone[!]), note the 'timeoutlen'
prefix behavior, and tick P1 #3 in the vimwiki gap tracker.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-31 08:41:33 -03:00
parent cca2043294
commit 1521d6c096
3 changed files with 27 additions and 12 deletions
+10 -5
View File
@@ -227,7 +227,7 @@ require('nuwiki').setup({
enabled = true,
wiki_prefix = true, -- <Leader>w*
links = true, -- <CR>, <S-CR>, <Tab>, <BS>, +, …
lists = true, -- <C-Space>, gln/glp/glx, gl<Space>, o/O, …
lists = true, -- <C-Space>, gln/glp/glx, gl/gL, o/O, …
headers = true, -- =, -, ]], [[, ]=, [=, ]u, [u
table_editing = true, -- gqq, <A-Left>, <A-Right>, <Tab> in insert mode
diary = true, -- <C-Down>, <C-Up>
@@ -285,7 +285,7 @@ Each is a boolean. All default to `true` except `mouse`.
| `enabled` | `true` | master switch for the whole keymap layer |
| `wiki_prefix` | `true` | `<Leader>w*` |
| `links` | `true` | `<CR>`, `<S-CR>`, `<Tab>`, `<BS>`, `+`, … |
| `lists` | `true` | `<C-Space>`, `gln`/`glp`/`glx`, `gl<Space>`, `o`/`O`, … |
| `lists` | `true` | `<C-Space>`, `gln`/`glp`/`glx`, `gl`/`gL`, `o`/`O`, … |
| `headers` | `true` | `=`, `-`, `]]`, `[[`, `]=`, `[=`, `]u`, `[u` |
| `table_editing` | `true` | `gqq`, `<A-Left>`, `<A-Right>`, `<Tab>` (insert) |
| `diary` | `true` | `<C-Down>`, `<C-Up>` |
@@ -417,7 +417,7 @@ available on both the Neovim and plain-Vim paths.
| `:NuwikiIncrementListItem` / `:NuwikiDecrementListItem` | `:VimwikiIncrementListItem` / `:VimwikiDecrementListItem` | Cycle the list marker to the next / previous symbol |
| `:NuwikiChangeSymbol {sym}` | `:VimwikiChangeSymbolTo {sym}` (`:VimwikiListChangeSymbolI`) | Set the current item's marker to `{sym}` |
| `:NuwikiChangeSymbolInList {sym}` | `:VimwikiChangeSymbolInListTo {sym}` | Set every item in the list to `{sym}` |
| `:NuwikiRemoveDone` | `:VimwikiRemoveDone` | Remove every completed item from the current list |
| `:NuwikiRemoveDone[!]` | `:VimwikiRemoveDone[!]` | Remove every completed item from the current list; with `!`, from the whole buffer |
| `:NuwikiRemoveCheckbox` | `:VimwikiRemoveSingleCB` | Strip the checkbox from the current list item |
| `:NuwikiRemoveCheckboxInList` | `:VimwikiRemoveCBInList` | Strip the checkbox from every item in the current list |
| `:NuwikiListChangeLvl {increase\|decrease}` | `:VimwikiListChangeLvl {increase\|decrease}` | Indent / dedent the current list item |
@@ -484,10 +484,15 @@ via `mappings.<group> = false` in Neovim, or
| `gLr` | Renumber every ordered list in the buffer |
| `gl<sym>` | Set the current item's marker to `<sym>` — one of `-` `*` `#` `1` (`1.`) `i` (`i)`) `I` (`I)`) `a` (`a)`) `A` (`A)`) |
| `gL<sym>` | Set every item in the list to `<sym>` (same symbol keys) |
| `gl<Space>` | Remove every completed item from the current list |
| `gL<Space>` | Remove every completed item in the buffer |
| `gl` | Remove the checkbox from the current item, keeping its text |
| `gL` | Remove the checkbox from every item in the current list |
| `o` / `O` | Open a new line and continue the list marker (preserves any checkbox) |
Bare `gl` / `gL` share the `gl…` prefix with the maps above, so (like upstream
vimwiki) they fire only after `'timeoutlen'`; type a suffix such as `gln` or
`gl*` quickly to reach the prefixed maps. Removing *done* items is command-only:
`:NuwikiRemoveDone` (current list) / `:NuwikiRemoveDone!` (whole buffer).
**Lists** (insert mode)
| Key | Action |
+10 -5
View File
@@ -31,11 +31,16 @@ fix site.
lists block, wired to the existing `list_change_symbol`. `1)` stays
command-only (upstream shadows it with `1.`); normal-mode only (server acts on
cursor item / whole list, not a visual range).
- [ ] **`gl<Space>` / `gL<Space>` semantics diverge** — upstream = *remove
checkbox* from item / list siblings; nuwiki rebinds to *remove done items*.
Same keys, different effect (parity trap). Remove-checkbox is command-only in
nuwiki (`:NuwikiRemoveCheckbox` / `…InList`).
_Fix:_ `lua/nuwiki/keymaps.lua`, `ftplugin/vimwiki.vim`.
- [x] **`gl<Space>` / `gL<Space>` semantics diverge** — upstream = *remove
checkbox* from item / list siblings; nuwiki rebound to *remove done items*.
Same keys, different effect (parity trap).
_Fix:_ bound **bare `gl`/`gL`** to remove-checkbox-item / -in-list for exact
upstream parity (`lua/nuwiki/keymaps.lua` lists block, `ftplugin/vimwiki.vim`
Vim-branch lists block); they share the `gl…` prefix so they fire after
`timeoutlen`, just like upstream. Remove-*done* is now command-only:
`:NuwikiRemoveDone` (current list) gained a `-bang` so `:NuwikiRemoveDone!`
reaches the whole-buffer sweep that `gL<Space>` previously held (the only
prior entry point). Normal-mode only.
## P2 — Moderate (real users hit these)
+7 -2
View File
@@ -456,8 +456,13 @@ Lists (normal mode) ~
of `-` `*` `#` `1` (1.) `i` (i)) `I` (I)) `a` (a)) `A` (A)).
For `1)` use `:NuwikiChangeSymbol 1)` (no single-key form).
gL<sym> Set every item in the list to <sym> (same symbol keys).
gl<Space> Remove every completed item from the current list.
gL<Space> Remove every completed item in the buffer.
gl Remove the checkbox from the current item, keeping its text.
gL Remove the checkbox from every item in the current list.
Bare `gl`/`gL` share the `gl...` prefix above, so (like
upstream vimwiki) they fire only after 'timeoutlen'; type a
suffix such as `gln`/`gl*` quickly to reach the prefixed maps.
Removing done items is command-only: `:NuwikiRemoveDone`
(current list) / `:NuwikiRemoveDone!` (whole buffer).
o Open a new line and continue the list marker (preserves
any checkbox).
O Same, opening above the current line.