diff --git a/CHANGELOG.md b/CHANGELOG.md index 31d5a61d..a0e2f400 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,7 +36,7 @@ To distinguish the raw mode, the gutter column is rendered in dashed line using `▖` character. But you can customize it using `--gutter-raw CHAR` option. ```sh -# If you don't liked the dashed line and you just want a thinner gutter +# If you don't like the dashed line and you just want a thinner gutter fzf --bind ctrl-x:toggle-raw --gutter-raw ▎ ``` @@ -52,6 +52,10 @@ fzf --raw --color hidden:red:strikethrough fzf --raw --color hidden:regular:red:strikethrough ``` +#### Leveraging `toggle-raw` in shell integration + +`CTRL-R` binding (command history) now allows you to toggle raw mode with `CTRL-X`. + ### Style changes This version introduces some minor changes to the traditional visual style of fzf. diff --git a/shell/key-bindings.bash b/shell/key-bindings.bash index 139476df..0f6e25a3 100644 --- a/shell/key-bindings.bash +++ b/shell/key-bindings.bash @@ -81,7 +81,7 @@ if command -v perl > /dev/null; then set +o pipefail builtin fc -lnr -2147483648 | last_hist=$(HISTTIMEFORMAT='' builtin history 1) command perl -n -l0 -e "$script" | - FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort --wrap-sign '"$'\t'"↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} +m --read0") \ + FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-x:toggle-raw --wrap-sign '"$'\t'"↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} +m --read0") \ FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd) --query "$READLINE_LINE" ) || return READLINE_LINE=$(command perl -pe 's/^\d*\t//' <<< "$output") @@ -104,7 +104,7 @@ else # awk - fallback for POSIX systems set +o pipefail builtin fc -lnr -2147483648 2> /dev/null | # ( $'\t '$'\n' )* ; ::= [^\n]* ( $'\n' )* __fzf_exec_awk "$script" | # ( $'\t'$'\000' )* - FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort --wrap-sign '"$'\t'"↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} +m --read0") \ + FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-x:toggle-raw --wrap-sign '"$'\t'"↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} +m --read0") \ FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd) --query "$READLINE_LINE" ) || return READLINE_LINE=${output#*$'\t'} diff --git a/shell/key-bindings.fish b/shell/key-bindings.fish index c8ecdd9e..3ca8447f 100644 --- a/shell/key-bindings.fish +++ b/shell/key-bindings.fish @@ -159,7 +159,7 @@ function fzf_key_bindings set -lx FZF_DEFAULT_OPTS (__fzf_defaults '' \ '--nth=2..,.. --scheme=history --multi --wrap-sign="\t↳ "' \ '--bind=\'shift-delete:execute-silent(eval history delete --exact --case-sensitive -- (string escape -n -- {+} | string replace -r -a "^\d*\\\\\\t|(?<=\\\\\\n)\\\\\\t" ""))+reload(eval $FZF_DEFAULT_COMMAND)\'' \ - "--bind=ctrl-r:toggle-sort --highlight-line $FZF_CTRL_R_OPTS" \ + "--bind=ctrl-r:toggle-sort,ctrl-x:toggle-raw --highlight-line $FZF_CTRL_R_OPTS" \ '--accept-nth=2.. --read0 --print0 --with-shell='(status fish-path)\\ -c) set -lx FZF_DEFAULT_OPTS_FILE diff --git a/shell/key-bindings.zsh b/shell/key-bindings.zsh index 3b24e30d..12af22a6 100644 --- a/shell/key-bindings.zsh +++ b/shell/key-bindings.zsh @@ -132,11 +132,11 @@ fzf-history-widget() { if zmodload -F zsh/parameter p:{commands,history} 2>/dev/null && (( ${+commands[perl]} )); then selected="$(printf '%s\t%s\000' "${(kv)history[@]}" | perl -0 -ne 'if (!$seen{(/^\s*[0-9]+\**\t(.*)/s, $1)}++) { s/\n/\n\t/g; print; }' | - FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort --wrap-sign '\t↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m --read0") \ + FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-x:toggle-raw --wrap-sign '\t↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m --read0") \ FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd))" else selected="$(fc -rl 1 | __fzf_exec_awk '{ cmd=$0; sub(/^[ \t]*[0-9]+\**[ \t]+/, "", cmd); if (!seen[cmd]++) print $0 }' | - FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort --wrap-sign '\t↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m") \ + FZF_DEFAULT_OPTS=$(__fzf_defaults "" "-n2..,.. --scheme=history --bind=ctrl-r:toggle-sort,ctrl-x:toggle-raw --wrap-sign '\t↳ ' --highlight-line ${FZF_CTRL_R_OPTS-} --query=${(qqq)LBUFFER} +m") \ FZF_DEFAULT_OPTS_FILE='' $(__fzfcmd))" fi local ret=$?