diff --git a/share/functions/__fish_shared_key_bindings.fish b/share/functions/__fish_shared_key_bindings.fish index 68f6c38fe..331faa508 100644 --- a/share/functions/__fish_shared_key_bindings.fish +++ b/share/functions/__fish_shared_key_bindings.fish @@ -80,7 +80,7 @@ function __fish_shared_key_bindings -d "Bindings shared between emacs and vi mod bind --preset $argv \e. history-token-search-backward bind --preset $argv \el __fish_list_current_token - bind --preset $argv \ew 'set tok (commandline -pt); if test -n "$tok[1]"; echo; whatis $tok[1]; commandline -f repaint; end' + bind --preset $argv \ew __fish_whatis_current_token # ncurses > 6.0 sends a "delete scrollback" sequence along with clear. # This string replace removes it. bind --preset $argv \cl 'echo -n (clear | string replace \e\[3J ""); commandline -f repaint' diff --git a/share/functions/__fish_whatis_current_token.fish b/share/functions/__fish_whatis_current_token.fish new file mode 100644 index 000000000..5bbd668c9 --- /dev/null +++ b/share/functions/__fish_whatis_current_token.fish @@ -0,0 +1,17 @@ +# This function is typically bound to Alt-W, it is used to list man page entries +# for the command under the cursor. +function __fish_whatis_current_token -d "Show man page entries related to the token under the cursor" + set -l tok (commandline -pt) + + if test -n "$tok[1]" + printf "\n" + whatis $tok[1] + + set -l line_count (count (fish_prompt)) + for x in (seq 2 $line_count) + printf "\n" + end + + commandline -f repaint + end +end