diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-10 15:17:23 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-10 15:17:23 +0900 |
| commit | 1819d73ebea8980ad5f43e8f8d785bd57cedce77 (patch) | |
| tree | 653a23f7265deab9e359668c27768e2bb068cf22 /fedora/.config/zsh/autocomplete.zsh | |
| parent | 65dd2c551cf04dd620c44c10fbe73233b4c47ea6 (diff) | |
Diffstat (limited to 'fedora/.config/zsh/autocomplete.zsh')
| -rw-r--r-- | fedora/.config/zsh/autocomplete.zsh | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/fedora/.config/zsh/autocomplete.zsh b/fedora/.config/zsh/autocomplete.zsh new file mode 100644 index 0000000..4763f71 --- /dev/null +++ b/fedora/.config/zsh/autocomplete.zsh @@ -0,0 +1,70 @@ +### --- Auto-completes aliases --- ### +# alias - normal aliases (completed with trailing space) +# balias - blank aliases (completed without space) +# ialias - ignored aliases (not completed) + + +# ignored aliases +typeset -a ialiases +ialiases=() + +ialias() { + alias $@ + args="$@" + args=${args%%\=*} + ialiases+=(${args##* }) +} + + +# blank aliases +typeset -a baliases +baliases=() + +balias() { + alias $@ + args="$@" + args=${args%%\=*} + baliases+=(${args##* }) +} + + +# functionality +expand-alias-space() { + [[ $LBUFFER =~ "\<(${(j:|:)baliases})\$" ]] && insertBlank=$? + if [[ ! $LBUFFER =~ "\<(${(j:|:)ialiases})\$" ]]; then + zle _expand_alias + zle expand-word + fi + zle self-insert + if [[ "$insertBlank" -eq 0 ]]; then + zle backward-delete-char + fi +} +zle -N expand-alias-space + + +# starts multiple args as programs in background +background() { + for ((i=2;i<=$#;i++)); do + ${@[1]} ${@[$i]} &> /dev/null & + done +} + + +# A function for expanding any aliases before accepting the line as is and executing the entered command +expand-alias-and-accept-line() { + expand-alias-space + # zle .backward-delete-char + zle .accept-line +} +# zle -N accept-line expand-alias-and-accept-line + + +bindkey '^ ' expand-alias-space # ctrl-space to bypass completion +bindkey ' ' magic-space +bindkey -M isearch ' ' magic-space + + +# file completion patterns +zstyle ':completion:*:*:nvim:*' file-patterns '^*.(pdf|odt|ods|doc|docx|xls|xlsx|odp|ppt|pptx|mp4|mkv|aux):source-files' '*:all-files' +zstyle ':completion:*:*:(build-workshop|build-document):*' file-patterns '*.mom' |
