mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-26 12:53:13 +00:00
parent
bd4622a0d0
commit
2f8d0e9aba
3 changed files with 29 additions and 1 deletions
17
share/functions/__fish_toggle_comment_commandline.fish
Normal file
17
share/functions/__fish_toggle_comment_commandline.fish
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# This is meant to be bound to key sequences such as \e#. It provides a simple way to quickly
|
||||||
|
# comment/uncomment the current command. This is something introduced by the Korn shell (ksh) in
|
||||||
|
# 1993. It allows you to capture a command in the shell history without executing it. Then
|
||||||
|
# retrieving the command from the shell history and removing the comment chars.
|
||||||
|
#
|
||||||
|
# This deliberately does not execute the command when removing the comment characters to give you an
|
||||||
|
# opportunity to modify the command.
|
||||||
|
|
||||||
|
function __fish_toggle_comment_commandline --description 'Comment/uncomment the current command'
|
||||||
|
set -l cmdlines (commandline -b)
|
||||||
|
if test "$cmdlines" = ""
|
||||||
|
return
|
||||||
|
end
|
||||||
|
set -l cmdlines (printf '%s\n' '#'$cmdlines | string replace -r '^##' '')
|
||||||
|
commandline -r $cmdlines
|
||||||
|
string match -q '#*' $cmdlines[1]; and commandline -f execute
|
||||||
|
end
|
|
@ -144,5 +144,8 @@ function fish_default_key_bindings -d "Default (Emacs-like) key bindings for fis
|
||||||
bind $argv \eOc forward-word
|
bind $argv \eOc forward-word
|
||||||
bind $argv \eOd backward-word
|
bind $argv \eOd backward-word
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
|
# Make it easy to turn an unexecuted command into a comment in the shell history. Also,
|
||||||
|
# remove the commenting chars so the command can be further edited then executed.
|
||||||
|
bind \e\# __fish_toggle_comment_commandline
|
||||||
|
end
|
||||||
|
|
|
@ -222,4 +222,12 @@ function fish_vi_key_bindings --description 'vi-like key bindings for fish'
|
||||||
bind -M visual -m default \e end-selection force-repaint
|
bind -M visual -m default \e end-selection force-repaint
|
||||||
|
|
||||||
set fish_bind_mode $init_mode
|
set fish_bind_mode $init_mode
|
||||||
|
|
||||||
|
# Make it easy to turn an unexecuted command into a comment in the shell history. Also, remove
|
||||||
|
# the commenting chars so the command can be further edited then executed.
|
||||||
|
bind -M default \# __fish_toggle_comment_commandline
|
||||||
|
bind -M visual \# __fish_toggle_comment_commandline
|
||||||
|
bind -M default \e\# __fish_toggle_comment_commandline
|
||||||
|
bind -M insert \e\# __fish_toggle_comment_commandline
|
||||||
|
bind -M visual \e\# __fish_toggle_comment_commandline
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue