From 3f4a38b5b552b84197df02cb8663354b385c89bf Mon Sep 17 00:00:00 2001 From: Matt Hamilton Date: Fri, 20 May 2016 20:25:01 -0700 Subject: [PATCH] [input] add double-dot expansion option Closes #49 --- modules/input/README.md | 3 +++ modules/input/init.zsh | 12 ++++++++++++ templates/zimrc | 8 ++++++++ 3 files changed, 23 insertions(+) diff --git a/modules/input/README.md b/modules/input/README.md index fba7563..bd0ee7d 100644 --- a/modules/input/README.md +++ b/modules/input/README.md @@ -5,3 +5,6 @@ Applies correct bindkeys for input events. Without this module, you may experience oddities in how Zsh interprets input. For example, using the UP key, then using the back arrow and pressing DELETE may capatalize characters rather than delete them. + +This module also provides double-dot parent directory expansion. +It can be enabled by uncommenting `zdouble_dot_expansion='true'` in your .zimrc diff --git a/modules/input/init.zsh b/modules/input/init.zsh index bccd2bb..198ce50 100644 --- a/modules/input/init.zsh +++ b/modules/input/init.zsh @@ -65,6 +65,18 @@ if [[ -n "${key_info[Insert]}" ]]; then bindkey "${key_info[Insert]}" overwrite-mode fi +if [[ ${zdouble_dot_expand} ]]; then + double-dot-expand() { + if [[ ${LBUFFER} == *.. ]]; then + LBUFFER+='/..' + else + LBUFFER+='.' + fi + } + zle -N double-dot-expand + bindkey "." double-dot-expand +fi + bindkey "${key_info[Delete]}" delete-char bindkey "${key_info[Backspace]}" backward-delete-char diff --git a/templates/zimrc b/templates/zimrc index f89691a..5110682 100644 --- a/templates/zimrc +++ b/templates/zimrc @@ -42,6 +42,14 @@ zprompt_theme='steeef' # See: http://zsh.sourceforge.net/Doc/Release/Options.html#Input_002fOutput #zcorrection='true' +# +# Input +# + +# Uncomment to enable double-dot expansion. +# This appends '../' to your input for each '.' you type after an initial '..' +#zdouble_dot_expand='true' + # # Syntax-Highlighting #