diff --git a/bashrc b/bashrc index 63214dd..01bcafa 100644 --- a/bashrc +++ b/bashrc @@ -4,7 +4,8 @@ [[ $- != *i* ]] && return # Export some useful variables -[[ -r $HOME/.local/bin && $PATH != *$HOME/.local/bin* ]] && PATH=$PATH:$HOME/.local/bin +local_bin="${HOME}/.local/bin" +[[ -r ${local_bin} && ${PATH} != *${local_bin}* ]] && PATH=${PATH}:${local_bin} # Some history tweaks HISTCONTROL=ignoredups:ignorespace @@ -12,12 +13,12 @@ HISTSIZE=1000 HISTFILESIZE=2000 # Enable completion -COMP_ENABLE=true +comp_enable=true # Other useful vars #export LC_CTYPE= <- for system messages locale export LC_ALL='en_GB.UTF-8' -export LANG=$LC_ALL +export LANG=${LC_ALL} export PAGER='less -R' export EDITOR='vim' export LS_COLORS='no=00:fi=00:di=34:ow=34;40:ln=35:pi=30;44:so=35;44:do=35;44:bd=33;44:cd=37;44:or=05;37;41:mi=05;37;41:ex=01;31:*.cmd=01;31:*.exe=01;31:*.com=01;31:*.bat=01;31:*.reg=01;31:*.app=01;31:*.txt=32:*.org=32:*.md=32:*.mkd=32:*.h=32:*.c=32:*.C=32:*.cc=32:*.cpp=32:*.cxx=32:*.objc=32:*.sh=32:*.csh=32:*.zsh=32:*.el=32:*.vim=32:*.java=32:*.pl=32:*.pm=32:*.py=32:*.rb=32:*.hs=32:*.php=32:*.htm=32:*.html=32:*.shtml=32:*.erb=32:*.haml=32:*.xml=32:*.rdf=32:*.css=32:*.sass=32:*.scss=32:*.less=32:*.js=32:*.coffee=32:*.man=32:*.0=32:*.1=32:*.2=32:*.3=32:*.4=32:*.5=32:*.6=32:*.7=32:*.8=32:*.9=32:*.l=32:*.n=32:*.p=32:*.pod=32:*.tex=32:*.bmp=33:*.cgm=33:*.dl=33:*.dvi=33:*.emf=33:*.eps=33:*.gif=33:*.jpeg=33:*.jpg=33:*.JPG=33:*.mng=33:*.pbm=33:*.pcx=33:*.pdf=33:*.pgm=33:*.png=33:*.ppm=33:*.pps=33:*.ppsx=33:*.ps=33:*.svg=33:*.svgz=33:*.tga=33:*.tif=33:*.tiff=33:*.xbm=33:*.xcf=33:*.xpm=33:*.xwd=33:*.xwd=33:*.yuv=33:*.aac=33:*.au=33:*.flac=33:*.mid=33:*.midi=33:*.mka=33:*.mp3=33:*.mpa=33:*.mpeg=33:*.mpg=33:*.ogg=33:*.ra=33:*.wav=33:*.anx=33:*.asf=33:*.avi=33:*.axv=33:*.flc=33:*.fli=33:*.flv=33:*.gl=33:*.m2v=33:*.m4v=33:*.mkv=33:*.mov=33:*.mp4=33:*.mp4v=33:*.mpeg=33:*.mpg=33:*.nuv=33:*.ogm=33:*.ogv=33:*.ogx=33:*.qt=33:*.rm=33:*.rmvb=33:*.swf=33:*.vob=33:*.wmv=33:*.doc=31:*.docx=31:*.rtf=31:*.dot=31:*.dotx=31:*.xls=31:*.xlsx=31:*.ppt=31:*.pptx=31:*.fla=31:*.psd=31:*.7z=1;35:*.apk=1;35:*.arj=1;35:*.bin=1;35:*.bz=1;35:*.bz2=1;35:*.cab=1;35:*.deb=1;35:*.dmg=1;35:*.gem=1;35:*.gz=1;35:*.iso=1;35:*.jar=1;35:*.msi=1;35:*.rar=1;35:*.rpm=1;35:*.tar=1;35:*.tbz=1;35:*.tbz2=1;35:*.tgz=1;35:*.tx=1;35:*.war=1;35:*.xpi=1;35:*.xz=1;35:*.z=1;35:*.Z=1;35:*.zip=1;35:*.ANSI-30-black=30:*.ANSI-01;30-brblack=01;30:*.ANSI-31-red=31:*.ANSI-01;31-brred=01;31:*.ANSI-32-green=32:*.ANSI-01;32-brgreen=01;32:*.ANSI-33-yellow=33:*.ANSI-01;33-bryellow=01;33:*.ANSI-34-blue=34:*.ANSI-01;34-brblue=01;34:*.ANSI-35-magenta=35:*.ANSI-01;35-brmagenta=01;35:*.ANSI-36-cyan=36:*.ANSI-01;36-brcyan=01;36:*.ANSI-37-white=37:*.ANSI-01;37-brwhite=01;37:*.log=01;32:*~=01;32:*#=01;32:*.bak=01;33:*.BAK=01;33:*.old=01;33:*.OLD=01;33:*.org_archive=01;33:*.off=01;33:*.OFF=01;33:*.dist=01;33:*.DIST=01;33:*.orig=01;33:*.ORIG=01;33:*.swp=01;33:*.swo=01;33:*,v=01;33:*.gpg=34:*.gpg=34:*.pgp=34:*.asc=34:*.3des=34:*.aes=34:*.enc=34:' @@ -30,7 +31,7 @@ shopt -s histappend shopt -s checkwinsize # autocd works only with bash versions 4+. -if [[ $BASH_VERSINFO -ge 4 ]]; then +if [[ ${BASH_VERSINFO} -ge 4 ]]; then shopt -s autocd fi @@ -44,7 +45,7 @@ fi # 0 - Black, 1 - Red, 2 - Green, 3 - Yellow # 4 - Blue, 5 - Magenta, 6 - Cyan, 7 - White -if [[ $UID -eq 1000 || $UID -eq 1205 || $UID -eq 0 || $USER == 'Von Random' ]]; then +if [[ ${UID} -eq 1000 || ${UID} -eq 1205 || ${UID} -eq 0 || ${USER} == 'Von Random' ]]; then user_ps="" else user_ps="\[\e[1;31m\]\u\[\e[0m\]@" @@ -77,7 +78,7 @@ alias iconvuk='command iconv -c -f utf-8 -t koi8-r' alias iconvku='command iconv -c -f koi8-r -t utf-8' alias iconvwu='command iconv -c -f cp1251 -t utf-8' # grc: -if [[ -x /usr/bin/grc ]]; then +if [[ -x $(type -P grc) ]]; then alias ping='command grc --colour=auto ping' alias ping6='command grc --colour=auto ping' alias traceroute='command grc --colour=auto traceroute' @@ -88,15 +89,15 @@ if [[ -x /usr/bin/grc ]]; then alias netstat='command grc --colour=auto netstat' fi # ls: -if [[ $OSTYPE == freebsd* ]]; then +if [[ ${OSTYPE} == freebsd* ]]; then alias ls='command ls -G ' -elif [[ $OSTYPE == linux-gnu ]] && [[ $HOSTNAME != *pvc* ]]; then +elif [[ ${OSTYPE} == 'linux-gnu' ]] && [[ ${HOSTNAME} != *pvc* ]]; then alias ls='command ls --color=auto --group-directories-first ' fi alias la='ls -FA' alias ll='ls -lha' alias ld='ls -lhda' -if [[ -x /usr/bin/colordiff || -x $HOME/.local/bin/colordiff ]]; then +if [[ -x $(type -P colordiff) ]]; then alias diff='command colordiff' fi # mount: @@ -114,17 +115,19 @@ alias sdf='command svn diff' alias sci='command svn commit' alias sup='command svn up' -# we want to see exit code on error -trap 'echo -e "\e[0mbash: exit \e[1;37m$?\e[0m"' ERR - # bash completion in case we have it completion_path='/usr/share/bash-completion/bash_completion' -[[ COMP_ENABLE == true && -r $completion_path ]] && source $completion_path +if [[ ${comp_enable} == true && -r ${completion_path} ]]; then + source ${completion_path} +fi # load additional functions and overrides -extras=( "$HOME/.bashrc.work" ) +extras=( "${HOME}/.bashrc.extras" ) for i in ${extras[@]}; do if [[ -r $i ]]; then source $i fi done + +# we want to see exit code on error (it also has to be the last entry here) +trap 'echo -e "\e[0mbash: exit \e[1;37m$?\e[0m"' ERR diff --git a/vim/colors/hybrid.vim b/vim-colors/hybrid.vim similarity index 100% rename from vim/colors/hybrid.vim rename to vim-colors/hybrid.vim diff --git a/vim-colors/jellybeans.vim b/vim-colors/jellybeans.vim new file mode 100644 index 0000000..21e7dbe --- /dev/null +++ b/vim-colors/jellybeans.vim @@ -0,0 +1,551 @@ +" Vim color file +" +" " __ _ _ _ " +" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ " +" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| " +" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ " +" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ " +" " \___/ " +" +" "A colorful, dark color scheme for Vim." +" +" File: jellybeans.vim +" URL: github.com/nanotech/jellybeans.vim +" Scripts URL: vim.org/scripts/script.php?script_id=2555 +" Maintainer: NanoTech (nanotech.nanotechcorp.net) +" Version: 1.6~git +" Last Change: January 15th, 2012 +" License: MIT +" Contributors: Daniel Herbert (pocketninja) +" Henry So, Jr. +" David Liang +" Rich Healey (richo) +" Andrew Wong (w0ng) +" +" Copyright (c) 2009-2012 NanoTech +" +" Permission is hereby granted, free of charge, to any per‐ +" son obtaining a copy of this software and associated doc‐ +" umentation files (the “Software”), to deal in the Soft‐ +" ware without restriction, including without limitation +" the rights to use, copy, modify, merge, publish, distrib‐ +" ute, sublicense, and/or sell copies of the Software, and +" to permit persons to whom the Software is furnished to do +" so, subject to the following conditions: +" +" The above copyright notice and this permission notice +" shall be included in all copies or substantial portions +" of the Software. +" +" THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY +" KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +" THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU‐ +" LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON‐ +" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐ +" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jellybeans" + +if has("gui_running") || &t_Co == 88 || &t_Co == 256 + let s:low_color = 0 +else + let s:low_color = 1 +endif + +" Color approximation functions by Henry So, Jr. and David Liang {{{ +" Added to jellybeans.vim by Daniel Herbert + +" returns an approximate grey index for the given grey level +fun! s:grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual grey level represented by the grey index +fun! s:grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" returns the palette index for the given grey index +fun! s:grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" returns an approximate color index for the given color level +fun! s:rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual color level for the given color index +fun! s:rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" returns the palette index for the given R/G/B color indices +fun! s:rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" returns the palette index to approximate the given R/G/B color levels +fun! s:color(r, g, b) + " get the closest grey + let l:gx = s:grey_number(a:r) + let l:gy = s:grey_number(a:g) + let l:gz = s:grey_number(a:b) + + " get the closest color + let l:x = s:rgb_number(a:r) + let l:y = s:rgb_number(a:g) + let l:z = s:rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = s:grey_level(l:gx) - a:r + let l:dgg = s:grey_level(l:gy) - a:g + let l:dgb = s:grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = s:rgb_level(l:gx) - a:r + let l:dg = s:rgb_level(l:gy) - a:g + let l:db = s:rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return s:grey_color(l:gx) + else + " use the color + return s:rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return s:rgb_color(l:x, l:y, l:z) + endif +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun! s:rgb(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return s:color(l:r, l:g, l:b) +endfun + +" sets the highlighting for the given group +fun! s:X(group, fg, bg, attr, lcfg, lcbg) + if s:low_color + let l:fge = empty(a:lcfg) + let l:bge = empty(a:lcbg) + + if !l:fge && !l:bge + exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=".a:lcbg + elseif !l:fge && l:bge + exec "hi ".a:group." ctermfg=".a:lcfg." ctermbg=NONE" + elseif l:fge && !l:bge + exec "hi ".a:group." ctermfg=NONE ctermbg=".a:lcbg + endif + else + let l:fge = empty(a:fg) + let l:bge = empty(a:bg) + + if !l:fge && !l:bge + exec "hi ".a:group." guifg=#".a:fg." guibg=#".a:bg." ctermfg=".s:rgb(a:fg)." ctermbg=".s:rgb(a:bg) + elseif !l:fge && l:bge + exec "hi ".a:group." guifg=#".a:fg." guibg=NONE ctermfg=".s:rgb(a:fg)." ctermbg=NONE" + elseif l:fge && !l:bge + exec "hi ".a:group." guifg=NONE guibg=#".a:bg." ctermfg=NONE ctermbg=".s:rgb(a:bg) + endif + endif + + if a:attr == "" + exec "hi ".a:group." gui=none cterm=none" + else + let l:noitalic = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",") + if empty(l:noitalic) + let l:noitalic = "none" + endif + exec "hi ".a:group." gui=".a:attr." cterm=".l:noitalic + endif +endfun +" }}} + +if !exists("g:jellybeans_background_color") + let g:jellybeans_background_color = "151515" +end + +call s:X("Normal","e8e8d3",g:jellybeans_background_color,"","White","") +set background=dark + +if !exists("g:jellybeans_use_lowcolor_black") || g:jellybeans_use_lowcolor_black + let s:termBlack = "Black" +else + let s:termBlack = "Grey" +endif + +if version >= 700 + call s:X("CursorLine","","1c1c1c","","",s:termBlack) + call s:X("CursorColumn","","1c1c1c","","",s:termBlack) + call s:X("MatchParen","ffffff","556779","bold","","DarkCyan") + + call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack) + call s:X("TabLineFill","9098a0","","","",s:termBlack) + call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White") + + " Auto-completion + call s:X("Pmenu","ffffff","606060","","White",s:termBlack) + call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White") +endif + +call s:X("Visual","","404040","","",s:termBlack) +call s:X("Cursor",g:jellybeans_background_color,"b0d0f0","","","") + +call s:X("LineNr","605958",g:jellybeans_background_color,"none",s:termBlack,"") +call s:X("CursorLineNr","ccc5c4","","none","White","") +call s:X("Comment","888888","","italic","Grey","") +call s:X("Todo","c7c7c7","","bold","White",s:termBlack) + +call s:X("StatusLine","000000","dddddd","italic","","White") +call s:X("StatusLineNC","ffffff","403c41","italic","White","Black") +call s:X("VertSplit","777777","403c41","",s:termBlack,s:termBlack) +call s:X("WildMenu","f0a0c0","302028","","Magenta","") + +call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"") +call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack) +call s:X("SignColumn","777777","333333","","",s:termBlack) +call s:X("ColorColumn","","000000","","",s:termBlack) + +call s:X("Title","70b950","","bold","Green","") + +call s:X("Constant","cf6a4c","","","Red","") +call s:X("Special","799d6a","","","Green","") +call s:X("Delimiter","668799","","","Grey","") + +call s:X("String","99ad6a","","","Green","") +call s:X("StringDelimiter","556633","","","DarkGreen","") + +call s:X("Identifier","c6b6ee","","","LightCyan","") +call s:X("Structure","8fbfdc","","","LightCyan","") +call s:X("Function","fad07a","","","Yellow","") +call s:X("Statement","8197bf","","","DarkBlue","") +call s:X("PreProc","8fbfdc","","","LightBlue","") + +hi! link Operator Structure + +call s:X("Type","ffb964","","","Yellow","") +call s:X("NonText","606060",g:jellybeans_background_color,"",s:termBlack,"") + +call s:X("SpecialKey","444444","1c1c1c","",s:termBlack,"") + +call s:X("Search","f0a0c0","302028","underline","Magenta","") + +call s:X("Directory","dad085","","","Yellow","") +call s:X("ErrorMsg","","902020","","","DarkRed") +hi! link Error ErrorMsg +hi! link MoreMsg Special +call s:X("Question","65C254","","","Green","") + + +" Spell Checking + +call s:X("SpellBad","","902020","underline","","DarkRed") +call s:X("SpellCap","","0000df","underline","","Blue") +call s:X("SpellRare","","540063","underline","","DarkMagenta") +call s:X("SpellLocal","","2D7067","underline","","Green") + +" Diff + +hi! link diffRemoved Constant +hi! link diffAdded String + +" VimDiff + +call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen") +call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed") +call s:X("DiffChange","","2B5B77","","White","DarkBlue") +call s:X("DiffText","8fbfdc","000000","reverse","Yellow","") + +" PHP + +hi! link phpFunctions Function +call s:X("StorageClass","c59f6f","","","Red","") +hi! link phpSuperglobal Identifier +hi! link phpQuoteSingle StringDelimiter +hi! link phpQuoteDouble StringDelimiter +hi! link phpBoolean Constant +hi! link phpNull Constant +hi! link phpArrayPair Operator +hi! link phpOperator Normal +hi! link phpRelation Normal +hi! link phpVarSelector Identifier + +" Python + +hi! link pythonOperator Statement + +" Ruby + +hi! link rubySharpBang Comment +call s:X("rubyClass","447799","","","DarkBlue","") +call s:X("rubyIdentifier","c6b6fe","","","Cyan","") +hi! link rubyConstant Type +hi! link rubyFunction Function + +call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","") +call s:X("rubySymbol","7697d6","","","Blue","") +hi! link rubyGlobalVariable rubyInstanceVariable +hi! link rubyModule rubyClass +call s:X("rubyControl","7597c6","","","Blue","") + +hi! link rubyString String +hi! link rubyStringDelimiter StringDelimiter +hi! link rubyInterpolationDelimiter Identifier + +call s:X("rubyRegexpDelimiter","540063","","","Magenta","") +call s:X("rubyRegexp","dd0093","","","DarkMagenta","") +call s:X("rubyRegexpSpecial","a40073","","","Magenta","") + +call s:X("rubyPredefinedIdentifier","de5577","","","Red","") + +" Erlang + +hi! link erlangAtom rubySymbol +hi! link erlangBIF rubyPredefinedIdentifier +hi! link erlangFunction rubyPredefinedIdentifier +hi! link erlangDirective Statement +hi! link erlangNode Identifier + +" JavaScript + +hi! link javaScriptValue Constant +hi! link javaScriptRegexpString rubyRegexp + +" CoffeeScript + +hi! link coffeeRegExp javaScriptRegexpString + +" Lua + +hi! link luaOperator Conditional + +" C + +hi! link cFormat Identifier +hi! link cOperator Constant + +" Objective-C/Cocoa + +hi! link objcClass Type +hi! link cocoaClass objcClass +hi! link objcSubclass objcClass +hi! link objcSuperclass objcClass +hi! link objcDirective rubyClass +hi! link objcStatement Constant +hi! link cocoaFunction Function +hi! link objcMethodName Identifier +hi! link objcMethodArg Normal +hi! link objcMessageName Identifier + +" Vimscript + +hi! link vimOper Normal + +" Debugger.vim + +call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue") +call s:X("DbgBreakPt","","4F0037","","","DarkMagenta") + +" vim-indent-guides + +if !exists("g:indent_guides_auto_colors") + let g:indent_guides_auto_colors = 0 +endif +call s:X("IndentGuidesOdd","","232323","","","") +call s:X("IndentGuidesEven","","1b1b1b","","","") + +" Plugins, etc. + +hi! link TagListFileName Directory +call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green") + +if !exists("g:jellybeans_background_color_256") + let g:jellybeans_background_color_256=233 +end +" Manual overrides for 256-color terminals. Dark colors auto-map badly. +if !s:low_color + hi StatusLineNC ctermbg=235 + hi Folded ctermbg=236 + hi FoldColumn ctermbg=234 + hi SignColumn ctermbg=236 + hi CursorColumn ctermbg=234 + hi CursorLine ctermbg=234 + hi SpecialKey ctermbg=234 + exec "hi NonText ctermbg=".g:jellybeans_background_color_256 + exec "hi LineNr ctermbg=".g:jellybeans_background_color_256 + hi DiffText ctermfg=81 + exec "hi Normal ctermbg=".g:jellybeans_background_color_256 + hi DbgBreakPt ctermbg=53 + hi IndentGuidesOdd ctermbg=235 + hi IndentGuidesEven ctermbg=234 +endif + +if exists("g:jellybeans_overrides") + fun! s:load_colors(defs) + for [l:group, l:v] in items(a:defs) + call s:X(l:group, get(l:v, 'guifg', ''), get(l:v, 'guibg', ''), + \ get(l:v, 'attr', ''), + \ get(l:v, 'ctermfg', ''), get(l:v, 'ctermbg', '')) + if !s:low_color + for l:prop in ['ctermfg', 'ctermbg'] + let l:override_key = '256'.l:prop + if has_key(l:v, l:override_key) + exec "hi ".l:group." ".l:prop."=".l:v[l:override_key] + endif + endfor + endif + unlet l:group + unlet l:v + endfor + endfun + call s:load_colors(g:jellybeans_overrides) + delf s:load_colors +endif + +" delete functions {{{ +delf s:X +delf s:rgb +delf s:color +delf s:rgb_color +delf s:rgb_level +delf s:rgb_number +delf s:grey_color +delf s:grey_level +delf s:grey_number +" }}} diff --git a/vim/colors/molokai.vim b/vim-colors/molokai.vim similarity index 100% rename from vim/colors/molokai.vim rename to vim-colors/molokai.vim diff --git a/vim/colors/solarized.vim b/vim-colors/solarized.vim similarity index 100% rename from vim/colors/solarized.vim rename to vim-colors/solarized.vim diff --git a/vim/colors/xoria256.vim b/vim-colors/xoria256.vim similarity index 100% rename from vim/colors/xoria256.vim rename to vim-colors/xoria256.vim diff --git a/vim/plugins/svndiff.vim b/vim/plugins/svndiff.vim deleted file mode 100644 index 8b7ec01..0000000 --- a/vim/plugins/svndiff.vim +++ /dev/null @@ -1,438 +0,0 @@ -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" svndiff (C) 2007 Ico Doornekamp -" -" This program is free software; you can redistribute it and/or modify it -" under the terms of the GNU General Public License as published by the Free -" Software Foundation; either version 2 of the License, or (at your option) -" any later version. -" -" This program is distributed in the hope that it will be useful, but WITHOUT -" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -" more details. -" -" Introduction -" ------------ -" -" NOTE: This plugin is unix-only! -" -" An small vim 7.0 plugin for showing RCS diff information in a file while -" editing. This plugin runs a diff between the current buffer and the original -" file from the version control system, and shows coloured signs indicating -" where the buffer differs from the original file from the repository. The -" original text is not shown, only signs are used to indicate where changes were -" made. With proper key bindings configured, fast navigation between changed -" blocks is also provided. -" -" Despite the name 'svndiff' this plugin supports the following RCS systems: -" -" - CVS -" - Fossil -" - Git -" - Mercurial -" - Perforce / p4 -" - Subversion -" -" The type of RCS will be detected when first issuing a svndiff command on -" the file. -" -" The following symbols and syntax highlight groups are used for the signs: -" -" > DiffAdd: Newly added lines. (default=blue) -" -" ! DiffChange: Lines which are changed from the original. (default=cyan) -" -" < DiffDel: Applied to the lines directly above and below a deleted block -" (default=magenta) -" -" Usage -" ----- -" -" The plugin defines one function: Svndiff(). This function figures out the -" difference between the current buffer and it's RCS original, and adds the -" signs at the places where the buffer differs from the original file from svn -" or git. You'll need to call this function after making changes to update the -" highlighting. -" -" The function takes one argument specifying an additional action to perform: -" -" "prev" : jump to the previous different block -" "next" : jump to the next different block -" "clear" : clean up all signs -" -" You might want to map some keys to run the Svndiff function. For -" example, add to your .vimrc: -" -" noremap :call Svndiff("prev") -" noremap :call Svndiff("next") -" noremap :call Svndiff("clear") -" -" -" Configuration -" ------------- -" -" The following configuration variables are availabe: -" -" * g:svndiff_autoupdate -" -" If this variable is defined, svndiff will automatically update the signs -" when the user stops typing for a short while, and when leaving insert -" mode. This might slow things down on large files, so use with caution. -" The vim variable 'updatetime' can be used to set the auto-update interval, -" but note that changing this variable other effects as well. (refer to the -" vim docs for more info) -" To use, add to your .vimrc: -" -" let g:svndiff_autoupdate = 1 -" -" * g:svndiff_one_sign_delete -" -" Normally, two 'delete' signs are placed around the location where -" text was deleted. When this variable is defined, only one sign is -" placed, above the location of the deleted text. -" To use, add to your .vimrc: -" -" let g:svndiff_one_sign_delete = 1 -" -" Colors -" ------ -" -" Personally, I find the following colours more intuitive for diff colours: -" red=deleted, green=added, yellow=changed. If you want to use these colours, -" try adding the following lines to your .vimrc -" -" hi DiffAdd ctermfg=0 ctermbg=2 guibg='green' -" hi DiffDelete ctermfg=0 ctermbg=1 guibg='red' -" hi DiffChange ctermfg=0 ctermbg=3 guibg='yellow' -" -" Changelog -" --------- -" -" 1.0 2007-04-02 Initial version -" -" 1.1 2007-04-02 Added goto prev/next diffblock commands -" -" 1.2 2007-06-14 Updated diff arguments from -u0 (obsolete) to -U0 -" -" 2.0 2007-08-16 Changed from syntax highlighting to using signs, thanks -" to Noah Spurrier for the idea. NOTE: the name of the -" function changed from Svndiff_show() to Svndiff(), so -" you might need to update your .vimrc mappings! -" -" 3.0 2008-02-02 Redesign with some ideas from Jan Bezdekovsky. The -" diff is only updated when the buffer actually changes, -" cleanup of signs is now done properly and some info -" about each diff block is printed in the status line. -" -" 3.1 2008-02-04 Fixed bug that broke plugin in non-english locales, thanks -" to Bernhard Walle for the patch -" -" 3.2 2008-02-27 The latest rewrite broke vim 6 compatiblity. The plugin -" is now simply disabled for older vim versions to avoid -" a lot of warnings when loading. -" -" 4.0 2008-11-24 Added GIT support. The RCS type is now detected (svn/git) -" -" 4.1 2008-11-25 Added CVS support. -" -" 4.2 2009-07-31 Added support for proper handling of non-unix file formats -" which use different newline conventions (dos, mac) -" -" 4.3 2010-05-08 Added support for Mercurial, fixed git support (thanks -" Frankovskyi Bogdan) -" -" 4.4 2011-03-30 Added support for perforce/p4 (thanks, Timandahaf) -" -" 4.5 2011-10-09 Bugfix when trying to use svndiff in a new fileless buffer -" (Frankovskyi Bogdan) -" -" 4.6 2012-06-02 Added support for the Fossil SCM (Andrea Federico -" Grisotto) -" -" 4.7 2013-04-25 Fixed git diff when not in top git directory -" -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" - -if v:version < 700 - finish -endif - -" Globals for this plugin - -let s:sign_base = 200000 " Base for our sign id's, hoping to avoid colisions -let s:is_active = {} " dictionary with buffer names that have svndiff active -let s:rcs_type = {} " RCS type, will be autodetected to one of svn/git/hg/cvs/p4 -let s:rcs_cmd = {} " Shell command to execute to get contents of clean file from RCS -let s:diff_signs = {} " dict with list of ids of all signs, per file -let s:diff_blocks = {} " dict with list of ids of first line of each diff block, per file -let s:changedtick = {} " dict with changedticks of each buffer since last invocation -let s:newline = {} " dict with newline character of each buffer - -" Commands to execute to get current file contents in various rcs systems - -let s:rcs_cmd_svn = "svn cat '%s'" -let s:rcs_cmd_git = "git cat-file -p HEAD:$(git ls-files --full-name '%s')" -let s:rcs_cmd_hg = "hg cat '%s'" -let s:rcs_cmd_cvs = "cvs -q update -p '%s'" -let s:rcs_cmd_p4 = "p4 print '%s'" -let s:rcs_cmd_fossil = "fossil finfo -p '%s'" - -" -" Do the diff and update signs. -" - -function s:Svndiff_update(...) - - let fname = bufname("%") - - if ! exists("s:is_active[fname]") - return 0 - end - - " Guess RCS type for this file - - if ! has_key(s:rcs_type, fname) - - " skip new files created in vim buffer - - if ! filereadable(fname) - return 0 - end - - let info = system("LANG=C svn info " . fname) - if match(info, "Path") != -1 - let s:rcs_type[fname] = "svn" - let s:rcs_cmd[fname] = s:rcs_cmd_svn - end - - let info = system("git status " . fname) - if v:shell_error == 0 - let s:rcs_type[fname] = "git" - let s:rcs_cmd[fname] = s:rcs_cmd_git - end - - let info = system("fossil status " . fname) - if v:shell_error == 0 - let s:rcs_type[fname] = "fossil" - let s:rcs_cmd[fname] = s:rcs_cmd_fossil - end - - let info = system("cvs st " . fname) - if v:shell_error == 0 - let s:rcs_type[fname] = "cvs" - let s:rcs_cmd[fname] = s:rcs_cmd_cvs - end - - let info = system("hg status " . fname) - if v:shell_error == 0 - let s:rcs_type[fname] = "hg" - let s:rcs_cmd[fname] = s:rcs_cmd_hg - end - - let info = system("p4 fstat " . fname) - if match(info, "depotFile") != -1 - let s:rcs_type[fname] = "p4" - let s:rcs_cmd[fname] = s:rcs_cmd_p4 - end - end - - " Could not detect RCS type, print message and exit - - if ! has_key(s:rcs_type, fname) - echom "Svndiff: Warning, file " . fname . " is not managed by a supported versioning system!" - unlet s:is_active[fname] - return - end - - " Find newline characters for the current file - - if ! has_key(s:newline, fname) - let l:ff_to_newline = { "dos": "\r\n", "unix": "\n", "mac": "\r" } - let s:newline[fname] = l:ff_to_newline[&l:fileformat] - echom s:newline[fname] - end - - " Check if the changedticks changed since the last invocation of this - " function. If nothing changed, there's no need to update the signs. - - if exists("s:changedtick[fname]") && s:changedtick[fname] == b:changedtick - return 1 - end - let s:changedtick[fname] = b:changedtick - - " The diff has changed since the last time, so we need to update the signs. - " This is where the magic happens: pipe the current buffer contents to a - " shell command calculating the diff in a friendly parsable format. - - let contents = join(getbufline("%", 1, "$"), s:newline[fname]) - let diff = system("diff -U0 <(" . substitute(s:rcs_cmd[fname], "%s", fname, "") . ") <(cat;echo)", contents) - - " clear the old signs - - call s:Svndiff_clear() - - " Parse the output of the diff command and put signs at changed, added and - " removed lines - - for line in split(diff, '\n') - - let part = matchlist(line, '@@ -\([0-9]*\),*\([0-9]*\) +\([0-9]*\),*\([0-9]*\) @@') - - if ! empty(part) - let old_from = part[1] - let old_count = part[2] == '' ? 1 : part[2] - let new_from = part[3] - let new_count = part[4] == '' ? 1 : part[4] - - " Figure out if text was added, removed or changed. - - if old_count == 0 - let from = new_from - let to = new_from + new_count - 1 - let name = 'svndiff_add' - let info = new_count . " lines added" - elseif new_count == 0 - let from = new_from - let to = new_from - let name = 'svndiff_delete' - let info = old_count . " lines deleted" - if ! exists("g:svndiff_one_sign_delete") - let to += 1 - endif - else - let from = new_from - let to = new_from + new_count - 1 - let name = 'svndiff_change' - let info = new_count . " lines changed" - endif - - let id = from + s:sign_base - let s:diff_blocks[fname] += [{ 'id': id, 'info': info }] - - " Add signs to mark the changed lines - - let line = from - while line <= to - let id = line + s:sign_base - exec 'sign place ' . id . ' line=' . line . ' name=' . name . ' file=' . fname - let s:diff_signs[fname] += [id] - let line = line + 1 - endwhile - - endif - endfor - -endfunction - - - -" -" Remove all signs we placed earlier -" - -function s:Svndiff_clear(...) - let fname = bufname("%") - if exists("s:diff_signs[fname]") - for id in s:diff_signs[fname] - exec 'sign unplace ' . id . ' file=' . fname - endfor - end - let s:diff_blocks[fname] = [] - let s:diff_signs[fname] = [] -endfunction - - -" -" Jump to previous diff block sign above the current line -" - -function s:Svndiff_prev(...) - let fname = bufname("%") - let diff_blocks_reversed = reverse(copy(s:diff_blocks[fname])) - for block in diff_blocks_reversed - let line = block.id - s:sign_base - if line < line(".") - call setpos(".", [ 0, line, 1, 0 ]) - echom 'svndiff: ' . block.info - return - endif - endfor - echom 'svndiff: no more diff blocks above cursor' -endfunction - - -" -" Jump to next diff block sign below the current line -" - -function s:Svndiff_next(...) - let fname = bufname("%") - for block in s:diff_blocks[fname] - let line = block.id - s:sign_base - if line > line(".") - call setpos(".", [ 0, line, 1, 0 ]) - echom 'svndiff: ' . block.info - return - endif - endfor - echom 'svndiff: no more diff blocks below cursor' -endfunction - - -" -" Wrapper function: Takes one argument, which is the action to perform: -" {next|prev|clear} -" - -function Svndiff(...) - - let cmd = exists("a:1") ? a:1 : '' - let fname = bufname("%") - if fname == "" - echom "Buffer has no file name, can not do a diff" - return - endif - - if cmd == 'clear' - let s:changedtick[fname] = 0 - if exists("s:is_active[fname]") - unlet s:is_active[fname] - endif - call s:Svndiff_clear() - end - - if cmd == 'prev' - let s:is_active[fname] = 1 - let ok = s:Svndiff_update() - if ok - call s:Svndiff_prev() - endif - endif - - if cmd == 'next' - let s:is_active[fname] = 1 - let ok = s:Svndiff_update() - if ok - call s:Svndiff_next() - endif - endif - -endfunction - - -" Define sign characters and colors - -sign define svndiff_add text=+ texthl=diffAdd -sign define svndiff_delete text=- texthl=diffDelete -sign define svndiff_change text=~ texthl=diffChange - - -" Define autocmds if autoupdate is enabled - -if exists("g:svndiff_autoupdate") - autocmd CursorHold,CursorHoldI * call s:Svndiff_update() - autocmd InsertLeave * call s:Svndiff_update() -endif - -" vi: ts=2 sw=2 - diff --git a/vimrc b/vimrc index b85c216..67f39a5 100644 --- a/vimrc +++ b/vimrc @@ -26,6 +26,7 @@ set clipboard=exclude:.* set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L] set list +set listchars=tab:→\ ,trail:•,nbsp:× " set indentation options for specific file types autocmd FileType ruby setlocal sts=2 sw=2 expandtab @@ -47,11 +48,9 @@ endif " set color scheme depending on the terminal capabilities if &t_Co > 88 || has("gui_running") - set listchars=tab:→\ ,trail:•,nbsp:× colorscheme solarized let g:solarized_italic=0 else - set listchars=tab:|\ ,trail:*,nbsp:x colorscheme elflord endif diff --git a/zshrc b/zshrc index 9a33d7a..0a0e008 100644 --- a/zshrc +++ b/zshrc @@ -26,16 +26,19 @@ zstyle ':completion:*:processes-names' command 'ps axho command' zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} # variables -[[ -n ${(M)path:#~/.local/bin} ]] || path+=($HOME/.local/bin(N)) -HISTFILE="$HOME/.histfile" +local_bin="${HOME}/.local/bin" +[[ -z ${(M)path:#${local_bin}} && -d ${local_bin} ]] && path+=(${local_bin}) +HISTFILE="${HOME}/.histfile" HISTSIZE=1000 SAVEHIST=1000 export LS_COLORS='no=00:fi=00:di=34:ow=34;40:ln=35:pi=30;44:so=35;44:do=35;44:bd=33;44:cd=37;44:or=05;37;41:mi=05;37;41:ex=01;31:*.cmd=01;31:*.exe=01;31:*.com=01;31:*.bat=01;31:*.reg=01;31:*.app=01;31:*.txt=32:*.org=32:*.md=32:*.mkd=32:*.h=32:*.c=32:*.C=32:*.cc=32:*.cpp=32:*.cxx=32:*.objc=32:*.sh=32:*.csh=32:*.zsh=32:*.el=32:*.vim=32:*.java=32:*.pl=32:*.pm=32:*.py=32:*.rb=32:*.hs=32:*.php=32:*.htm=32:*.html=32:*.shtml=32:*.erb=32:*.haml=32:*.xml=32:*.rdf=32:*.css=32:*.sass=32:*.scss=32:*.less=32:*.js=32:*.coffee=32:*.man=32:*.0=32:*.1=32:*.2=32:*.3=32:*.4=32:*.5=32:*.6=32:*.7=32:*.8=32:*.9=32:*.l=32:*.n=32:*.p=32:*.pod=32:*.tex=32:*.bmp=33:*.cgm=33:*.dl=33:*.dvi=33:*.emf=33:*.eps=33:*.gif=33:*.jpeg=33:*.jpg=33:*.JPG=33:*.mng=33:*.pbm=33:*.pcx=33:*.pdf=33:*.pgm=33:*.png=33:*.ppm=33:*.pps=33:*.ppsx=33:*.ps=33:*.svg=33:*.svgz=33:*.tga=33:*.tif=33:*.tiff=33:*.xbm=33:*.xcf=33:*.xpm=33:*.xwd=33:*.xwd=33:*.yuv=33:*.aac=33:*.au=33:*.flac=33:*.mid=33:*.midi=33:*.mka=33:*.mp3=33:*.mpa=33:*.mpeg=33:*.mpg=33:*.ogg=33:*.ra=33:*.wav=33:*.anx=33:*.asf=33:*.avi=33:*.axv=33:*.flc=33:*.fli=33:*.flv=33:*.gl=33:*.m2v=33:*.m4v=33:*.mkv=33:*.mov=33:*.mp4=33:*.mp4v=33:*.mpeg=33:*.mpg=33:*.nuv=33:*.ogm=33:*.ogv=33:*.ogx=33:*.qt=33:*.rm=33:*.rmvb=33:*.swf=33:*.vob=33:*.wmv=33:*.doc=31:*.docx=31:*.rtf=31:*.dot=31:*.dotx=31:*.xls=31:*.xlsx=31:*.ppt=31:*.pptx=31:*.fla=31:*.psd=31:*.7z=1;35:*.apk=1;35:*.arj=1;35:*.bin=1;35:*.bz=1;35:*.bz2=1;35:*.cab=1;35:*.deb=1;35:*.dmg=1;35:*.gem=1;35:*.gz=1;35:*.iso=1;35:*.jar=1;35:*.msi=1;35:*.rar=1;35:*.rpm=1;35:*.tar=1;35:*.tbz=1;35:*.tbz2=1;35:*.tgz=1;35:*.tx=1;35:*.war=1;35:*.xpi=1;35:*.xz=1;35:*.z=1;35:*.Z=1;35:*.zip=1;35:*.ANSI-30-black=30:*.ANSI-01;30-brblack=01;30:*.ANSI-31-red=31:*.ANSI-01;31-brred=01;31:*.ANSI-32-green=32:*.ANSI-01;32-brgreen=01;32:*.ANSI-33-yellow=33:*.ANSI-01;33-bryellow=01;33:*.ANSI-34-blue=34:*.ANSI-01;34-brblue=01;34:*.ANSI-35-magenta=35:*.ANSI-01;35-brmagenta=01;35:*.ANSI-36-cyan=36:*.ANSI-01;36-brcyan=01;36:*.ANSI-37-white=37:*.ANSI-01;37-brwhite=01;37:*.log=01;32:*~=01;32:*#=01;32:*.bak=01;33:*.BAK=01;33:*.old=01;33:*.OLD=01;33:*.org_archive=01;33:*.off=01;33:*.OFF=01;33:*.dist=01;33:*.DIST=01;33:*.orig=01;33:*.ORIG=01;33:*.swp=01;33:*.swo=01;33:*,v=01;33:*.gpg=34:*.gpg=34:*.pgp=34:*.asc=34:*.3des=34:*.aes=34:*.enc=34:' export LC_ALL='en_GB.UTF-8' -export LANG="$LC_ALL" +export LANG=${LC_ALL} export PAGER='less' export EDITOR='vim' +player='mpv' +viewer='eog' # ---> prompt PROMPT="%B%(!..%(1000#..%F{red}%n%f@))%F{blue}%m%f %F{white}%~%f %(1j.+%F{red}%j%f.)%(!.%F{red}.%F{green})%#%f%b " @@ -82,7 +85,7 @@ alias iconvuk='command iconv -c -f utf-8 -t koi8-r' alias iconvku='command iconv -c -f koi8-r -t utf-8' alias iconvwu='command iconv -c -f cp1251 -t utf-8' # grc - colorize some command outputs -if [[ -x /usr/bin/grc ]]; then +if [[ -x $(whence 'grc') ]]; then alias ping='command grc --colour=auto ping' alias ping6='command grc --colour=auto ping' alias traceroute='command grc --colour=auto traceroute' @@ -93,16 +96,16 @@ if [[ -x /usr/bin/grc ]]; then alias netstat='command grc --colour=auto netstat' fi # ls -if [[ $OSTYPE == freebsd* ]]; then +if [[ ${OSTYPE} == freebsd* ]]; then alias ls='command ls -G' -elif [[ $OSTYPE == linux-gnu || $OSTYPE == cygwin ]] && [[ $HOST != *pvc* ]]; then - alias ls='command ls --color=auto --group-directories-first ' +elif [[ ${OSTYPE} == 'linux-gnu' || ${OSTYPE} == 'cygwin' ]] && [[ ${HOST} != *pvc* ]]; then + alias ls='command ls --color=auto --group-directories-first' fi alias la='ls -FA' alias ll='ls -lha' alias ld='ls -lhda' # colordiff -if [[ -x /usr/bin/colordiff || -x $HOME/.local/bin/colordiff ]]; then +if [[ -x $(whence 'colordiff') ]]; then alias diff='command colordiff' fi # mount @@ -112,8 +115,9 @@ alias mountnrg='sudo mount -o loop,offset=307200' # git alias gss='command git status -s' alias gdf='command git diff' -alias gci='command git commit' +alias gci='command git commit -a' alias gup='command git pull' +alias gpush='command git push' # svn alias sss='command svn status' alias sdf='command svn diff' @@ -139,23 +143,23 @@ alias -g UK='| iconv -f utf-8 -t koi8-r' alias -g KU='| iconv -f koi8-r -t utf-8' # ---> suffix aliases -text=( txt xml cfg cnf conf ini erb pp ) -for i in $text[@]; do - alias -s $i=$EDITOR +text=( 'txt' 'xml' 'cfg' 'cnf' 'conf' 'ini' 'erb' 'pp' ) +for i in ${text[@]}; do + alias -s ${i}=${EDITOR} done -media=( mkv mp4 avi mpg mp3 ogg mpeg mov webm flv ) -for i in $media[@]; do - alias -s $i=mpv +media=( 'mkv' 'mp4' 'avi' 'mpg' 'mp3' 'ogg' 'mpeg' 'mov' 'webm' 'flv' ) +for i in ${media[@]}; do + alias -s ${i}=${player} done -image=( jpg png gif bmp jpeg ) -for i in $image[@]; do - alias -s $i=eog +image=( 'jpg' 'png' 'gif' 'bmp' 'jpeg' ) +for i in ${image[@]}; do + alias -s ${i}=${viewer} done # wine: -if [[ $OSTYPE != cygwin ]]; then +if [[ ${OSTYPE} != 'cygwin' ]]; then alias -s exe=wine fi @@ -171,31 +175,31 @@ function screenoffenable { xset s on } function zshrc { - vim "$HOME/.zshrc" + vim "${HOME}/.zshrc" } autoload screenoffdisable screenoffenable # command line syntax highlight from https://github.com/zsh-users/zsh-syntax-highlighting #hl_script="$HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" hl_script="/usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" -if [[ -r $hl_script ]]; then - source $hl_script +if [[ -r ${hl_script} ]]; then + source ${hl_script} ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) ZSH_HIGHLIGHT_STYLES[path]='fg=white,bold' ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=white,bold' fi # history substring search à la fish from https://github.com/zsh-users/zsh-history-substring-search -hs_script="$HOME/.zsh-history-substring-search/zsh-history-substring-search.zsh" -if [[ -r $hs_script ]]; then - source $hs_script +hs_script="${HOME}/.zsh-history-substring-search/zsh-history-substring-search.zsh" +if [[ -r ${hs_script} ]]; then + source ${hs_script} bindkey "^[[A" history-substring-search-up bindkey "^[[B" history-substring-search-down fi -extras=( "$HOME/.zshrc.work" ) -for i in $extras[@]; do - if [[ -r $i ]]; then - source $i +extras=( "${HOME}/.zshrc.extras" ) +for i in ${extras[@]}; do + if [[ -r ${i} ]]; then + source ${i} fi done