fish-shell/share/functions/__fish_cancel_commandline.fish
Aaron Gyes 8ca3adaa91 Fix ^C at commandline indicator for FreeBSD
This didn't work on platforms where tput exists but can never accept
terminfo names. This includes the current versions of FreeBSD - it
used to do both, now it doesn't. So, fall back to the old termcap names
by (tput smso; or tput so). Add check for the tput program before we
even try.
2016-09-01 07:30:50 -07:00

24 lines
822 B
Fish

# This is meant to be bound to something like \cC.
function __fish_cancel_commandline
set -l cmd (commandline)
if test -n "$cmd"
commandline -C 1000000
# TODO: Switch from using tput and standout mode to `set_color` when themes have been
# augmented to include support for background colors or has support for standout/reverse
# mode.
#
# Set reverse fg/bg color mode, output ^C, restore normal mode, clear to EOL (to erase any
# autosuggestion).
if command -v tput
echo -ns (tput smso; or tput so) "^C" (tput rmso; or tput se) (tput el; or tput ce)
else
echo -n "^C"
end
for i in (seq (commandline -L))
echo ""
end
commandline ""
commandline -f repaint
end
end