diff --git a/auto-ls.zsh b/auto-ls.zsh index 5d44462..fc5ca8e 100755 --- a/auto-ls.zsh +++ b/auto-ls.zsh @@ -34,21 +34,23 @@ auto-ls () { # 1. Called from `chpwd_functions` – show file list # 2. Called by another ZLE plugin (like `dirhistory`) through `zle accept-line` – show file list # 3. Called by ZLE itself – only should file list if prompt was empty - if ! zle \ - || { [[ ${WIDGET} != accept-line ]] && [[ ${LASTWIDGET} != .accept-line ]] }\ - || { [[ ${WIDGET} == accept-line ]] && [[ $#BUFFER -eq 0 ]] }; then - zle && echo - for cmd in $AUTO_LS_COMMANDS; do - # If we detect a command with full path, ex: /bin/ls execute it - if [[ $AUTO_LS_PATH != false && $cmd =~ '/' ]]; then - eval $cmd - else - # Otherwise run auto-ls function - auto-ls-$cmd - fi - done - zle && zle .accept-line - fi + if [[ ${AUTO_LS_CHPWD} == true ]]; then + if ! zle \ + || { [[ ${WIDGET} != accept-line ]] && [[ ${LASTWIDGET} != .accept-line ]] }\ + || { [[ ${WIDGET} == accept-line ]] && [[ $#BUFFER -eq 0 ]] }; then + zle && echo + for cmd in $AUTO_LS_COMMANDS; do + # If we detect a command with full path, ex: /bin/ls execute it + if [[ $AUTO_LS_PATH != false && $cmd =~ '/' ]]; then + eval $cmd + else + # Otherwise run auto-ls function + auto-ls-$cmd + fi + done + zle && zle .accept-line + fi + fi # Forward this event down the ZLE stack if zle; then