summaryrefslogtreecommitdiff
path: root/fedora/.config/zsh/autocomplete.zsh
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-10 15:17:23 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-12-10 15:17:23 +0900
commit1819d73ebea8980ad5f43e8f8d785bd57cedce77 (patch)
tree653a23f7265deab9e359668c27768e2bb068cf22 /fedora/.config/zsh/autocomplete.zsh
parent65dd2c551cf04dd620c44c10fbe73233b4c47ea6 (diff)
updatesHEADmaster
Diffstat (limited to 'fedora/.config/zsh/autocomplete.zsh')
-rw-r--r--fedora/.config/zsh/autocomplete.zsh70
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'