From 8bd4d12cfa008f761afb12a8e966f4fb95a47753 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Sat, 8 May 2021 14:17:22 +0100 Subject: [PATCH] Add ATUIN_NOBIND (#62) * Add ATUIN_NOBIND * Update docs/key-binding.md ``, what magic Co-authored-by: bl-ue <54780737+bl-ue@users.noreply.github.com> Co-authored-by: bl-ue <54780737+bl-ue@users.noreply.github.com> --- README.md | 1 + docs/key-binding.md | 38 ++++++++++++++++++++++++++++++++++++++ src/shell/atuin.bash | 4 +++- src/shell/atuin.zsh | 3 +-- 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 docs/key-binding.md diff --git a/README.md b/README.md index a1a4f3d..d138832 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ I wanted to. And I **really** don't want to. - [Cloud history sync](docs/sync.md) - [History stats](docs/stats.md) - [Running your own server](docs/server.md) +- [Key binding](docs/key-binding.md) ## Supported Shells diff --git a/docs/key-binding.md b/docs/key-binding.md new file mode 100644 index 0000000..c877674 --- /dev/null +++ b/docs/key-binding.md @@ -0,0 +1,38 @@ +# Key binding + +By default, Atuin will rebind both Ctrl-r and the up arrow. If you do not want +this to happen, set ATUIN_NOBIND before the call to `atuin init` + +For example + +``` +export ATUIN_NOBIND="true" +eval "$(atuin init zsh)" +``` + +You can then choose to bind Atuin if needed, do this after the call to init. + +# zsh + +Atuin defines the ZLE widget "\_atuin_search_widget" + +``` +export ATUIN_NOBIND="true" +eval "$(atuin init zsh)" + +bindkey '^r' _atuin_search_widget + +# depends on terminal mode +bindkey '^[[A' _atuin_search_widget +bindkey '^[OA' _atuin_search_widget +``` + +# bash + +``` +export ATUIN_NOBIND="true" +eval "$(atuin init bash)" + +# bind to ctrl-r, add any other bindings you want here too +bind -x '"\C-r": __atuin_history' +``` diff --git a/src/shell/atuin.bash b/src/shell/atuin.bash index 43de364..8c35b4f 100644 --- a/src/shell/atuin.bash +++ b/src/shell/atuin.bash @@ -27,4 +27,6 @@ __atuin_history () preexec_functions+=(_atuin_preexec) precmd_functions+=(_atuin_precmd) -bind -x '"\C-r": __atuin_history' +if [[ -z $ATUIN_NOBIND ]]; then + bind -x '"\C-r": __atuin_history' +fi diff --git a/src/shell/atuin.zsh b/src/shell/atuin.zsh index 6a24de5..15f2492 100644 --- a/src/shell/atuin.zsh +++ b/src/shell/atuin.zsh @@ -3,7 +3,6 @@ autoload -U add-zsh-hook export ATUIN_SESSION=$(atuin uuid) export ATUIN_HISTORY="atuin history list" -export ATUIN_BINDKEYS="true" _atuin_preexec(){ id=$(atuin history start "$1") @@ -42,7 +41,7 @@ add-zsh-hook precmd _atuin_precmd zle -N _atuin_search_widget _atuin_search -if [[ $ATUIN_BINDKEYS == "true" ]]; then +if [[ -z $ATUIN_NOBIND ]]; then bindkey '^r' _atuin_search_widget # depends on terminal mode