From: Simon Ruderich Date: Sat, 27 Apr 2013 14:04:23 +0000 (+0200) Subject: zsh/rc: Prefix all functions and global variables with zshrc_. X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;h=abffe4a5d42482508709c25797961e1760f3bcc3;p=config%2Fdotfiles.git zsh/rc: Prefix all functions and global variables with zshrc_. --- diff --git a/zsh/rc b/zsh/rc index 5cad9c8..dea4804 100644 --- a/zsh/rc +++ b/zsh/rc @@ -24,7 +24,7 @@ source_debug '. ~/.zsh/rc' # Return the name of the program which is called in the foreground with `fg`. # $1 is the name of the program (optional). If it's not 'fg' or 'fg *' it's # returned unchanged. -resolve_fg_to_resumed_job_name() { +zshrc_resolve_fg_to_resumed_job_name() { # $REPLY is used by convention for scalars ($reply for arrays) to return # values from functions. unset it here to prevent problems when REPLY is # bound to an integer or similar. Thanks to Mikachu in #zsh on Freenode @@ -154,8 +154,8 @@ setopt histignorespace # returned. Very useful to get old commands quickly - in addition to the # history commands (!..). Thanks to Mikachu in #zsh on Freenode (2010-01-17 # 12:47 CET) for the information how to a use function with bindkey. -zle -N my-vi-history-beginning-search-backward -my-vi-history-beginning-search-backward() { +zle -N zshrc-vi-history-beginning-search-backward +zshrc-vi-history-beginning-search-backward() { local not_at_beginning_of_line if [[ $CURSOR -ne 0 ]]; then not_at_beginning_of_line=yes @@ -170,7 +170,7 @@ my-vi-history-beginning-search-backward() { zle vi-forward-char fi } -bindkey '^P' my-vi-history-beginning-search-backward +bindkey '^P' zshrc-vi-history-beginning-search-backward bindkey -a '^P' history-beginning-search-backward # binding for Vi-mode # Here only Vi-mode is necessary as ^P enters Vi-mode and ^N only makes sense # after calling ^P. @@ -250,7 +250,7 @@ if [[ $ZSH_VERSION == (4.3.<9->*|4.<4->*|<5->*) || # Default to run vcs_info. If possible we prevent running it later for # speed reasons. If set to a non empty value vcs_info is run. - FORCE_RUN_VCS_INFO=1 + zshrc_force_run_vcs_info=1 # Cache system inspired by Bart Trojanowski # (http://jukie.net/~bart/blog/pimping-out-zsh-prompt). @@ -262,8 +262,8 @@ if [[ $ZSH_VERSION == (4.3.<9->*|4.<4->*|<5->*) || # If the shell just started up or we changed directories (or for other # custom reasons) we must run vcs_info. - if [[ -n $FORCE_RUN_VCS_INFO ]]; then - FORCE_RUN_VCS_INFO= + if [[ -n $zshrc_force_run_vcs_info ]]; then + zshrc_force_run_vcs_info= return fi @@ -283,26 +283,26 @@ if [[ $ZSH_VERSION == (4.3.<9->*|4.<4->*|<5->*) || # Must run vcs_info when changing directories. prompt_chpwd() { - FORCE_RUN_VCS_INFO=1 + zshrc_force_run_vcs_info=1 } chpwd_functions+=(prompt_chpwd) # Used by prompt code below to determine if vcs_info should be run. - RUN_VCS_INFO=1 + zshrc_use_vcs_info=1 else - RUN_VCS_INFO= + zshrc_use_vcs_info= fi -typeset -a longrun_data -longrun_data=() +typeset -a zshrc_longrun_data +zshrc_longrun_data=() # Display runtime in seconds for long running programs (> 60 seconds) and send # a bell to notify me. -longrun_preexec() { +zshrc_longrun_preexec() { local program="$3" # Handle fg. local REPLY - resolve_fg_to_resumed_job_name "$program" + zshrc_resolve_fg_to_resumed_job_name "$program" program="$REPLY" # Don't track the time for certain (possible) long running processes which @@ -310,35 +310,35 @@ longrun_preexec() { for ignore in elinks man mutt vim; do case $program in $ignore | $ignore\ *) - longrun_data=() + zshrc_longrun_data=() return ;; esac done - longrun_data=("$program" $EPOCHSECONDS) + zshrc_longrun_data=("$program" $EPOCHSECONDS) } -longrun_precmd() { +zshrc_longrun_precmd() { # No previous timestamp available or disabled for this command, ignore. - if [[ -z $longrun_data ]]; then + if [[ -z $zshrc_longrun_data ]]; then return fi - local difference=$(( EPOCHSECONDS - longrun_data[2] )) + local difference=$(( EPOCHSECONDS - zshrc_longrun_data[2] )) if [[ $difference -gt 60 ]]; then echo echo -n "${fg[yellow]}" - echo -n "~> ${(V)longrun_data[1]} took $difference seconds." + echo -n "~> ${(V)zshrc_longrun_data[1]} took $difference seconds." echo -n "${fg[default]}" echo "\a" # send bell fi # Clear status. Prevents displaying old status information when pressing # enter with an empty command line. - longrun_data=() + zshrc_longrun_data=() } -preexec_functions+=(longrun_preexec) -precmd_functions+=(longrun_precmd) +preexec_functions+=(zshrc_longrun_preexec) +precmd_functions+=(zshrc_longrun_precmd) # Set the prompt. A two line prompt is used. On the top left the current # working directory is displayed, on the right vcs_info (if available) and the @@ -351,14 +351,14 @@ precmd_functions+=(longrun_precmd) # terminals. # # Thanks to Adam's prompt for the basic idea of this prompt. -prompt_precmd() { +zshrc_prompt_precmd() { # Regex to remove elements which take no space. Used to calculate the # width of the top prompt. Thanks to Bart's and Adam's prompt code in # Functions/Prompts/prompt_*_setup. local zero='%([BSUbfksu]|([FB]|){*})' # Call vcs_info before every prompt. - if [[ -n $RUN_VCS_INFO ]]; then + if [[ -n $zshrc_use_vcs_info ]]; then vcs_info else vcs_info_msg_0_= @@ -419,7 +419,7 @@ prompt_precmd() { PROMPT="${top_prefix}${top_left}${top_separator}${top_right} ${bottom_prefix}${user}@${host} ${background}%# ${exitcode}" } -precmd_functions+=(prompt_precmd) +precmd_functions+=(zshrc_prompt_precmd) # When GNU screen, tmux, xterm or rxvt is used set the name of the window to @@ -443,13 +443,13 @@ precmd_functions+=(prompt_precmd) if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then # Is set to a non empty value to reset the window name in the next # precmd() call. - window_reset=yes + zshrc_window_reset=yes # Is set to a non empty value when the shell is running as root. if [[ $UID -eq 0 ]]; then - window_root=yes + zshrc_window_root=yes fi - window_preexec() { + zshrc_window_preexec() { # Get the program name with its arguments. local program_name=$1 @@ -463,7 +463,7 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then # Handle fg. local REPLY - resolve_fg_to_resumed_job_name "$program_name" + zshrc_resolve_fg_to_resumed_job_name "$program_name" program_name="$REPLY" # Remove all arguments from the program name. @@ -492,7 +492,7 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then # Add an exclamation mark at the beginning if running with sudo or if # running zsh as root. - if [[ -n $program_sudo || -n $window_root ]]; then + if [[ -n $program_sudo || -n $zshrc_window_root ]]; then program_name=!$program_name fi @@ -512,15 +512,15 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then fi # Set the window name to the currently running program. - window_title "$program_name" + zshrc_window_title "$program_name" # Tell precmd() to reset the window name when the program stops. - window_reset=yes + zshrc_window_reset=yes } - window_precmd() { + zshrc_window_precmd() { # Abort if no window name reset is necessary. - [[ -z $window_reset ]] && return + [[ -z $zshrc_window_reset ]] && return # Reset the window name to 'zsh'. local name=zsh @@ -531,41 +531,41 @@ if [[ $TERM == screen* || $TERM == xterm* || $TERM == rxvt* ]]; then fi # Prepend prefixes like in window_preexec(). - if [[ -n $window_root ]]; then + if [[ -n $zshrc_window_root ]]; then name="!$name" fi if [[ -n $SSH_CONNECTION ]]; then name="@$name" fi - window_title $name + zshrc_window_title $name # Just reset the name, so no screen reset necessary for the moment. - window_reset= + zshrc_window_reset= } # Sets the window title. Works with GNU screen, tmux (which uses screen as # TERM), xterm and rxvt. (V) escapes all non-printable characters, thanks # to Mikachu in #zsh on Freenode (2010-08-07 17:09 CEST). if [[ $TERM == screen* ]]; then - window_title() { + zshrc_window_title() { print -n "\ek${(V)1}\e\\" } elif [[ $TERM == xterm* || $TERM == rxvt* ]]; then - window_title() { + zshrc_window_title() { print -n "\e]2;${(V)1}\e\\" } else # Fallback if another TERM is used. - window_title() { } + zshrc_window_title() { } fi # Add the preexec() and precmd() hooks. - preexec_functions+=(window_preexec) - precmd_functions+=(window_precmd) + preexec_functions+=(zshrc_window_preexec) + precmd_functions+=(zshrc_window_precmd) else # Fallback if another TERM is used, necessary to run screen (see below in # "RUN COMMANDS"). - window_preexec() { } + zshrc_window_preexec() { } fi @@ -749,8 +749,8 @@ alias -g .....='../../../..' # is empty. I open so much windows that I don't know in which I have something # important. This helps me to remember which windows are empty (I run clear # after I finished my work in a window). -if [[ -n $window_reset ]]; then - alias clear='clear; window_reset=yes; window_precmd reset' +if [[ -n $zshrc_window_reset ]]; then + alias clear='clear; zshrc_window_reset=yes; zshrc_window_precmd reset' fi @@ -815,7 +815,7 @@ fi # Configuration option for rc.local to use GNU screen/tmux. By default GNU # screen is used. Possible values: screen, tmux and empty (no value). -use_multiplexer=screen +zshrc_use_multiplexer=screen source_config ~/.zsh/rc.local @@ -827,32 +827,32 @@ source_config ~/.zsh/rc.local # through ssh. if [[ $TERM != dumb && $TERM != linux && -z $STY && -z $TMUX ]]; then # Get running detached sessions. - if [[ $use_multiplexer = screen ]]; then + if [[ $zshrc_use_multiplexer = screen ]]; then session=$(screen -list | grep 'Detached' | awk '{ print $1; exit }') - elif [[ $use_multiplexer = tmux ]]; then + elif [[ $zshrc_use_multiplexer = tmux ]]; then session=$(tmux list-sessions 2>/dev/null \ | sed '/(attached)$/ d; s/^\([0-9]\{1,\}\).*$/\1/; q') fi # As we exec later we have to set the title here. - if [[ $use_multiplexer = screen ]]; then - window_preexec screen - elif [[ $use_multiplexer = tmux ]]; then - window_preexec tmux + if [[ $zshrc_use_multiplexer = screen ]]; then + zshrc_window_preexec screen + elif [[ $zshrc_use_multiplexer = tmux ]]; then + zshrc_window_preexec tmux fi # Create a new session if none is running. if [[ -z $session ]]; then - if [[ $use_multiplexer = screen ]]; then + if [[ $zshrc_use_multiplexer = screen ]]; then exec screen - elif [[ $use_multiplexer = tmux ]]; then + elif [[ $zshrc_use_multiplexer = tmux ]]; then exec tmux fi # Reattach to a running session. else - if [[ $use_multiplexer = screen ]]; then + if [[ $zshrc_use_multiplexer = screen ]]; then exec screen -r $session - elif [[ $use_multiplexer = tmux ]]; then + elif [[ $zshrc_use_multiplexer = tmux ]]; then exec tmux attach-session -t $session fi fi