Advertisement
Guest User

Untitled

a guest
Aug 24th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.02 KB | None | 0 0
  1. ##################################
  2. #
  3. # Zshrc
  4. #
  5. ##################################
  6.  
  7. ##################################
  8. #
  9. # Global Settings
  10. #
  11. ##################################
  12. zstyle :compinstall filename '/home/user/.zshrc'
  13.  
  14. autoload -Uz compinit
  15.  
  16. compinit
  17.  
  18. setterm blength 0
  19.  
  20. # Enable highlighting
  21. zstyle ':completion:*' menu select=1
  22.  
  23. # Corrections
  24. zstyle ':completion:*' completer _complete _correct
  25. #setopt correct_all
  26.  
  27. # Source plugins
  28. source ~/.zsh_plugins.sh
  29.  
  30. # Automatically change directory if a directory is entered
  31. setopt autocd
  32. setopt extendedglob
  33.  
  34. # Case-insensitive globbing
  35. zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
  36.  
  37. # History
  38. HISTFILE=~/.zsh_history
  39. HISTSIZE=1000
  40. SAVEHIST=$HISTSIZE
  41.  
  42. ###################################
  43. #
  44. # Keybindings
  45. #
  46. ###################################
  47. #Emacs mode
  48. #bindkey -e
  49. #Vi mode
  50. #bindkey -v
  51. #export KEYTIMEOUT=1
  52. typeset -A key
  53. key=(
  54. BackSpace "${terminfo[kbs]}"
  55. Home "${terminfo[khome]}"
  56. End "${terminfo[kend]}"
  57. Insert "${terminfo[kich1]}"
  58. Delete "${terminfo[kdch1]}"
  59. Up "${terminfo[kcuu1]}"
  60. Down "${terminfo[kcud1]}"
  61. Left "${terminfo[kcub1]}"
  62. Right "${terminfo[kcuf1]}"
  63. PageUp "${terminfo[kpp]}"
  64. PageDown "${terminfo[knp]}"
  65. )
  66.  
  67. function bind2maps () {
  68. local i sequence widget
  69. local -a maps
  70.  
  71. while [[ "$1" != "--" ]]; do
  72. maps+=( "$1" )
  73. shift
  74. done
  75. shift
  76.  
  77. sequence="${key[$1]}"
  78. widget="$2"
  79.  
  80. [[ -z "$sequence" ]] && return 1
  81.  
  82. for i in "${maps[@]}"; do
  83. bindkey -M "$i" "$sequence" "$widget"
  84. done
  85. }
  86.  
  87. bind2maps emacs -- BackSpace backward-delete-char
  88. bind2maps viins -- BackSpace vi-backward-delete-char
  89. bind2maps vicmd -- BackSpace vi-backward-char
  90. bind2maps emacs -- Home beginning-of-line
  91. bind2maps viins vicmd -- Home vi-beginning-of-line
  92. bind2maps emacs -- End end-of-line
  93. bind2maps viins vicmd -- End vi-end-of-line
  94. bind2maps emacs viins -- Insert overwrite-mode
  95. bind2maps vicmd -- Insert vi-insert
  96. bind2maps emacs -- Delete delete-char
  97. bind2maps viins vicmd -- Delete vi-delete-char
  98. bind2maps emacs viins vicmd -- Up up-line-or-history
  99. bind2maps emacs viins vicmd -- Down down-line-or-history
  100. bind2maps emacs -- Left backward-char
  101. bind2maps viins vicmd -- Left vi-backward-char
  102. bind2maps emacs -- Right forward-char
  103. bind2maps viins vicmd -- Right vi-forward-char
  104. bind2maps viins vicmd -- PageUp history-beginning-search-backward
  105. bind2maps viins vicmd -- PageDown history-beginning-search-forward
  106.  
  107. # Make sure the terminal is in application mode, when zle is active. Only then are the values from $terminfo valid.
  108. if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
  109. function zle-line-init () {
  110. emulate -L zsh
  111. printf '%s' ${terminfo[smkx]}
  112. }
  113. function zle-line-finish () {
  114. emulate -L zsh
  115. printf '%s' ${terminfo[rmkx]}
  116. }
  117. zle -N zle-line-init
  118. zle -N zle-line-finish
  119. else
  120. for i in {s,r}mkx; do
  121. (( ${+terminfo[$i]} )) || debian_missing_features+=($i)
  122. done
  123. unset i
  124. fi
  125.  
  126. unfunction bind2maps
  127.  
  128. ###################################
  129. #
  130. # Prompt
  131. #
  132. ###################################
  133.  
  134. $Smilies
  135. setopt PROMPT_SUBST
  136. prompt_status_smiley() {
  137. [[ $? -ne 0 ]] && echo '%F{1}):%f'
  138. }
  139.  
  140. # Git prompt
  141. setopt prompt_subst
  142. autoload -Uz vcs_info
  143. zstyle ':vcs_info:*' actionformats \
  144. '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
  145. zstyle ':vcs_info:*' formats \
  146. '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
  147. zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
  148.  
  149. zstyle ':vcs_info:*' enable git cvs svn
  150.  
  151. # or use pre_cmd, see man zshcontrib
  152. vcs_info_wrapper() {
  153. vcs_info
  154. if [ -n "$vcs_info_msg_0_" ]; then
  155. echo "%{$fg[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del"
  156. fi
  157. }
  158. RPROMPT=$'$(vcs_info_wrapper)'
  159.  
  160. #Main Prompt
  161. PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;34m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}%!%{\e[0;34m%}%B]%b%{\e[0m%}
  162. %{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B]%{\e[0m%}%b '
  163. RPROMPT='$(prompt_status_smiley)'
  164. PS2=$' \e[0;34m%}%B>%{\e[0m%}%b'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement