Clean up and fix +1/-0 syntax to work as expected
This change follows this proposed behaviour: Ctrl+Shift+Left: move to last visited directory Ctrl+Shift+Right: move to next visited directory an alternative behaviour would be: Ctrl+Shift+Left: move directory to the left in `dirs` output Ctrl+Shift+Right: move directory to the right in `dirs` output It also introduces `setopt nopushdminus` as a way to standardise pushd syntax. It's value wasn't clear before, which has been the cause of so many pull requests regarding this plugin not working in some environments.
This commit is contained in:
parent
13e5afe805
commit
5fe22fcbc6
@ -1,10 +1,27 @@
|
||||
##
|
||||
# dircycle plugin: enables cycling through the directory
|
||||
# stack using Ctrl+Shift+Left/Right
|
||||
# enables cycling through the directory stack using
|
||||
# Ctrl+Shift+Left/Right
|
||||
#
|
||||
# left/right direction follows the order in which directories
|
||||
# were visited, like left/right arrows do in a browser
|
||||
|
||||
eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }"
|
||||
# NO_PUSHD_MINUS syntax:
|
||||
# pushd +N: start counting from left of `dirs' output
|
||||
# pushd -N: start counting from right of `dirs' output
|
||||
setopt nopushdminus
|
||||
|
||||
insert-cycledleft () {
|
||||
zle push-line
|
||||
LBUFFER='pushd -q +1'
|
||||
zle accept-line
|
||||
}
|
||||
zle -N insert-cycledleft
|
||||
bindkey "\e[1;6D" insert-cycledleft
|
||||
eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q +0'; zle accept-line }"
|
||||
|
||||
insert-cycledright () {
|
||||
zle push-line
|
||||
LBUFFER='pushd -q -0'
|
||||
zle accept-line
|
||||
}
|
||||
zle -N insert-cycledright
|
||||
|
||||
bindkey "\e[1;6D" insert-cycledleft
|
||||
bindkey "\e[1;6C" insert-cycledright
|
||||
|
Loading…
Reference in New Issue
Block a user