From c387689d1cd45f0d8eb122fe95ee72ccc61d3bff Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Fri, 3 Mar 2017 12:20:01 +0900 Subject: [PATCH] [shell] Enable sorting by default in CTRL-R CTRL-R binding used to start with --no-sort to list the matched commands in chronological order. However, it has been a constant source of confusion. Let's enable it by default from now on. The sorted result shouldn't be too confusing as we use --tiebreak=index. --- README.md | 4 ++-- shell/key-bindings.bash | 2 +- shell/key-bindings.fish | 2 +- shell/key-bindings.zsh | 2 +- test/test_go.rb | 1 + 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c016de49..b9f9ce38 100644 --- a/README.md +++ b/README.md @@ -230,8 +230,8 @@ fish. - Set `FZF_CTRL_T_COMMAND` to override the default command - Set `FZF_CTRL_T_OPTS` to pass additional options - `CTRL-R` - Paste the selected command from history onto the command line - - Sort is disabled by default to respect chronological ordering - - Press `CTRL-R` again to toggle sort + - If you want to see the commands in chronological order, press `CTRL-R` + again which toggles sorting by relevance - Set `FZF_CTRL_R_OPTS` to pass additional options - `ALT-C` - cd into the selected directory - Set `FZF_ALT_C_COMMAND` to override the default command diff --git a/shell/key-bindings.bash b/shell/key-bindings.bash index 5a68bc15..4266a407 100644 --- a/shell/key-bindings.bash +++ b/shell/key-bindings.bash @@ -56,7 +56,7 @@ __fzf_history__() ( shopt -u nocaseglob nocasematch line=$( HISTTIMEFORMAT= history | - FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS +s --tac -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m" $(__fzfcmd) | + FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS --tac -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m" $(__fzfcmd) | command grep '^ *[0-9]') && if [[ $- =~ H ]]; then sed 's/^ *\([0-9]*\)\** .*/!\1/' <<< "$line" diff --git a/shell/key-bindings.fish b/shell/key-bindings.fish index c35dac7e..e424f1a1 100644 --- a/shell/key-bindings.fish +++ b/shell/key-bindings.fish @@ -45,7 +45,7 @@ function fzf_key_bindings function fzf-history-widget -d "Show command history" set -q FZF_TMUX_HEIGHT; or set FZF_TMUX_HEIGHT 40% begin - set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT $FZF_DEFAULT_OPTS +s --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m" + set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT $FZF_DEFAULT_OPTS --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS +m" history | eval (__fzfcmd) -q '(commandline)' | read -l result and commandline -- $result end diff --git a/shell/key-bindings.zsh b/shell/key-bindings.zsh index dbafafb2..e67e3a78 100644 --- a/shell/key-bindings.zsh +++ b/shell/key-bindings.zsh @@ -63,7 +63,7 @@ fzf-history-widget() { setopt pipefail 2> /dev/null local selected num selected=( $(fc -l 1 | - FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS +s --tac -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS --query=${(q)LBUFFER} +m" $(__fzfcmd)) ) + FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} $FZF_DEFAULT_OPTS --tac -n2..,.. --tiebreak=index --bind=ctrl-r:toggle-sort $FZF_CTRL_R_OPTS --query=${(q)LBUFFER} +m" $(__fzfcmd)) ) local ret=$? if [ -n "$selected" ]; then num=$selected[1] diff --git a/test/test_go.rb b/test/test_go.rb index 04703757..fef328bb 100644 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -1408,6 +1408,7 @@ module TestShell tmux.send_keys 'C-r' tmux.until { |lines| lines.item_count > 0 } end + tmux.send_keys 'C-r' tmux.send_keys '3d' tmux.until { |lines| lines[-3].end_with? 'echo 3rd' } tmux.send_keys :Enter