diff options
| author | Johannes Altmanninger <aclopte@gmail.com> | 2022-07-29 20:42:59 +0200 |
|---|---|---|
| committer | Johannes Altmanninger <aclopte@gmail.com> | 2022-07-30 22:17:32 +0200 |
| commit | 45aad1ed2cf9986942dc0ccc8aaf3729063ebf79 (patch) | |
| tree | 4b32145483172c22b234b4c4df55ba8a6a329dae | |
| parent | 329b215494ed1d3a294a134ecc39dda3e5256e82 (diff) | |
rc man: fix man-jump when selection contains first character of man link
If I use "man dirname" and select "basename"
SEE ALSO
basename(1), readlink(1)
^------^
then pressing <ret> to trigger man-jump selects everything from "ALSO"
until "basename(1)" Obviously that's not the name of a man page,
so it fails. When I select only "asename" it works.
The bad selection happens because we use a combination of <a-?> and ?
to extend the selection to a full link. This is more complicated than
it needs to be; let's just select the surrounding WORD. This works
fine because man page links never start mid-word, and trailing
characters are ignored anyway.
| -rw-r--r-- | rc/tools/man.kak | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/rc/tools/man.kak b/rc/tools/man.kak index ed85ce2a..f017fa8c 100644 --- a/rc/tools/man.kak +++ b/rc/tools/man.kak @@ -122,19 +122,9 @@ man-link-next %{ man-search %opt[man_link2] n } define-command -docstring 'Go to previous man page link' \ man-link-prev %{ man-search %opt[man_link2] <a-n> } -# Expand backward and forward, and then try to search for a man page link -define-command man-link-here %{ evaluate-commands -save-regs / %{ - man-search %opt[man_link2] '<a-?>\b\w<ret><a-;>?\)<ret>' -}} -hidden - -# Search current selection for a man page link -define-command man-link %{ evaluate-commands -save-regs / %{ - man-search %opt[man_link1] s<ret> -}} -hidden - define-command -docstring 'Try to jump to a man page' \ man-jump %{ - try %{ man-link } catch %{ man-link-here } catch %{ fail 'Not a valid man page link' } + try %{ execute-keys <a-a><a-w> s %opt[man_link1] <ret> } catch %{ fail 'Not a valid man page link' } try %{ man } catch %{ fail 'No man page link to follow' } } |
