summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-12-02 09:38:42 +0000
committerMaxime Coste <frrrwww@gmail.com>2015-12-02 09:38:42 +0000
commit2a6f36732ddc273e090f084b12e4e0498c3bb889 (patch)
treedf8e93201632eba7970e2eeab6d7ec6cd2feae70
parent0c30df7a0c832a5968d62d26144edfddf8194b35 (diff)
parentd540b9f924d633d185cfc7b04b3f01c680361f24 (diff)
Merge remote-tracking branch 'lenormf/rc/man.kak'
-rw-r--r--rc/man.kak16
1 files changed, 13 insertions, 3 deletions
diff --git a/rc/man.kak b/rc/man.kak
index c1c401ff..65423d38 100644
--- a/rc/man.kak
+++ b/rc/man.kak
@@ -38,13 +38,23 @@ def -params .. \
prefix=${1:0:${kak_pos_in_token}}
for page in /usr/share/man/*/${prefix}*.[1-8]*; do
candidate=$(basename ${page%%.[1-8]*})
+ pagenum=$(sed -r 's,^.+/.+\.([1-8][^.]*)\..+$,\1,' <<< $page)
case $candidate in
*\*) ;;
- *) echo $candidate ;;
+ *) echo $candidate\($pagenum\);;
esac
done
} \
man -docstring "Manpages viewer wrapper" %{ %sh{
- [ -z "$@" ] && set -- "$kak_selection"
- echo "eval -try-client %opt{docsclient} _man $@"
+ subject=${@-$kak_selection}
+ pagenum=""
+
+ ## The completion suggestions display the page number, strip them if present
+ if [[ $subject =~ [a-zA-Z_-]+\([^\)]+\) ]]; then
+ pagenum=${subject##*\(}
+ pagenum=${pagenum:0:$((${#pagenum} - 1))}
+ subject=${subject%%\(*}
+ fi
+
+ echo "eval -try-client %opt{docsclient} _man $pagenum $subject"
} }