diff options
| author | Patrick Decat <pdecat@gmail.com> | 2022-12-18 19:26:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-18 18:26:09 +0000 |
| commit | ed394afa82ef919937521e5ce72fc467cec203f9 (patch) | |
| tree | bc7d078684089e71d0d96f22328c5c266ad22d28 /src/shell | |
| parent | Bump debian from bullseye-20221024-slim to bullseye-20221205-slim (#638) (diff) | |
| download | atuin-ed394afa82ef919937521e5ce72fc467cec203f9.zip | |
Allow overriding filter and search modes from CLI (#635)
* Allow overriding filter and search modes from CLI arguments
* Use session filter mode for bash up key binding
* We precisely do not want to add quotes here so that all arguments are properly passed
* Add --shell-up-key-binding hidden command argument and filter_mode_shell_up_key_binding configuration option to allow customizing the filter mode used when atuin is invoked from a shell up-key binding
* Correct up binding for zsh
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
Diffstat (limited to '')
| -rw-r--r-- | src/shell/atuin.bash | 7 | ||||
| -rw-r--r-- | src/shell/atuin.fish | 4 | ||||
| -rw-r--r-- | src/shell/atuin.zsh | 12 |
3 files changed, 15 insertions, 8 deletions
diff --git a/src/shell/atuin.bash b/src/shell/atuin.bash index 4530e31e..9c8fa237 100644 --- a/src/shell/atuin.bash +++ b/src/shell/atuin.bash @@ -17,7 +17,8 @@ _atuin_precmd() { __atuin_history () { tput rmkx - HISTORY="$(RUST_LOG=error atuin search -i -- "${READLINE_LINE}" 3>&1 1>&2 2>&3)" + # shellcheck disable=SC2048,SC2086 + HISTORY="$(RUST_LOG=error atuin search $* -i -- "${READLINE_LINE}" 3>&1 1>&2 2>&3)" tput smkx READLINE_LINE=${HISTORY} @@ -34,6 +35,6 @@ fi if [[ -z ${ATUIN_NOBIND} ]]; then bind -x '"\C-r": __atuin_history' - bind -x '"\e[A": __atuin_history' - bind -x '"\eOA": __atuin_history' + bind -x '"\e[A": __atuin_history --shell-up-key-binding' + bind -x '"\eOA": __atuin_history --shell-up-key-binding' fi diff --git a/src/shell/atuin.fish b/src/shell/atuin.fish index 69175ad4..9446907e 100644 --- a/src/shell/atuin.fish +++ b/src/shell/atuin.fish @@ -15,7 +15,7 @@ function _atuin_postexec --on-event fish_postexec end function _atuin_search - set h (RUST_LOG=error atuin search -i -- (commandline -b) 3>&1 1>&2 2>&3) + set h (RUST_LOG=error atuin search $* -i -- (commandline -b) 3>&1 1>&2 2>&3) commandline -f repaint if test -n "$h" commandline -r $h @@ -33,7 +33,7 @@ function _atuin_bind_up set -l lineno (commandline --line) switch $lineno case 1 - _atuin_search + _atuin_search --shell-up-key-binding case '*' up-or-search end diff --git a/src/shell/atuin.zsh b/src/shell/atuin.zsh index ed1c0c16..dd5c1afc 100644 --- a/src/shell/atuin.zsh +++ b/src/shell/atuin.zsh @@ -34,7 +34,8 @@ _atuin_search(){ echoti rmkx # swap stderr and stdout, so that the tui stuff works # TODO: not this - output=$(RUST_LOG=error atuin search -i -- $BUFFER 3>&1 1>&2 2>&3) + # shellcheck disable=SC2048 + output=$(RUST_LOG=error atuin search $* -i -- $BUFFER 3>&1 1>&2 2>&3) echoti smkx if [[ -n $output ]] ; then @@ -45,15 +46,20 @@ _atuin_search(){ zle reset-prompt } +_atuin_up_search(){ + _atuin_search --shell-up-key-binding +} + add-zsh-hook preexec _atuin_preexec add-zsh-hook precmd _atuin_precmd zle -N _atuin_search_widget _atuin_search +zle -N _atuin_up_search_widget _atuin_up_search if [[ -z $ATUIN_NOBIND ]]; then bindkey '^r' _atuin_search_widget # depends on terminal mode - bindkey '^[[A' _atuin_search_widget - bindkey '^[OA' _atuin_search_widget + bindkey '^[[A' _atuin_up_search_widget + bindkey '^[OA' _atuin_up_search_widget fi |
