From 03fb0e46ca19a4486a7c104ce0b70b346869a467 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Fri, 27 Sep 2013 17:01:32 +0200 Subject: [Keys] Asks confirmation before exiting top zsh process --- 01_Internal.zsh | 5 +++++ user:hugues/KeyBindings.zsh | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/01_Internal.zsh b/01_Internal.zsh index 8624ede..df9731e 100644 --- a/01_Internal.zsh +++ b/01_Internal.zsh @@ -631,3 +631,8 @@ _process_tree() done } +# Asks confirmation before executing parameters +confirm() { + read -q "?Are you sure? " && $@ +} + diff --git a/user:hugues/KeyBindings.zsh b/user:hugues/KeyBindings.zsh index fb241f4..1c4a693 100644 --- a/user:hugues/KeyBindings.zsh +++ b/user:hugues/KeyBindings.zsh @@ -164,9 +164,15 @@ bindkey -v # This setup may change the `ESC' keybinding to `C-d'. That defeats the # possibility to exit zsh by pressing `C-d' (which usually sends EOF). # With this widget, you can type `:q' to exit the shell from vicmd. +if [ $( _process_tree | grep -o zsh | wc -l ) -gt 1 ] +then + CONFIRM_EXIT="" +else + CONFIRM_EXIT="confirm " +fi function ft-zshexit { [[ -o hist_ignore_space ]] && BUFFER=' ' - BUFFER="${BUFFER}exit" + BUFFER="${BUFFER}${CONFIRM_EXIT}exit" zle .accept-line } zle -N q ft-zshexit -- cgit v1.2.3