aboutsummaryrefslogtreecommitdiff
path: root/04-functions.zsh
diff options
context:
space:
mode:
Diffstat (limited to '04-functions.zsh')
-rw-r--r--04-functions.zsh49
1 files changed, 49 insertions, 0 deletions
diff --git a/04-functions.zsh b/04-functions.zsh
new file mode 100644
index 0000000..0539b2f
--- /dev/null
+++ b/04-functions.zsh
@@ -0,0 +1,49 @@
+if [ -n '$TMUX' ]; then
+ function refresh {
+ export SSH_AUTH_SOCK="$(tmux show-environment | grep '^SSH_AUTH_SOCK' | cut -d '=' -f 2)"
+ export SSH_AUTH_KEY="$(tmux show-environment | grep '^SSH_AUTH_KEY' | cut -d '=' -f 2)"
+ export SSH_CONNECTION="$(tmux show-environment | grep '^SSH_CONNECTION' | cut -d '=' -f 2)"
+ export DISPLAY="$(tmux show-environment | grep '^DISPLAY' | cut -d '=' -f 2)"
+ }
+else
+ function refresh { }
+fi
+
+# declare a list of expandable aliases to fill up later
+typeset -a ealiases
+ealiases=()
+
+# write a function for adding an alias to the list mentioned above
+function abbrev-alias() {
+ alias $1
+ ealiases+=(${1%%\=*})
+}
+
+# expand any aliases in the current line buffer
+function expand-ealias() {
+ if [[ $LBUFFER =~ "\<(${(j:|:)ealiases})\$" ]]; then
+ zle _expand_alias
+ zle expand-word
+ fi
+ zle magic-space
+}
+zle -N expand-ealias
+
+# Bind the space key to the expand-alias function above, so that space will expand any expandable aliases
+bindkey ' ' expand-ealias
+bindkey '^ ' magic-space # control-space to bypass completion
+bindkey -M isearch " " magic-space # normal space during searches
+
+# A function for expanding any aliases before accepting the line as is and executing the entered command
+expand-alias-and-accept-line() {
+ expand-ealias
+ zle .backward-delete-char
+ zle .accept-line
+}
+
+zle -N accept-line expand-alias-and-accept-line
+
+abbrev-alias g="git"
+abbrev-alias gst="git status"
+abbrev-alias gcb="git checkout --branch"
+abbrev-alias ll="ls -l"