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 #