This commit is contained in:
bzoicas
2023-07-10 10:41:17 +03:00
commit dbb46eb92a
360 changed files with 13521 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
# aliases
alias ..='cd ..'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias back='cd $OLDPWD'
alias c='clear'
alias cd..='cd ..'
alias cp='cp -iv'
alias chmod="chmod -c"
alias chmod="chmod -c"
alias df='df -h -x squashfs -x tmpfs -x devtmpfs'
alias diff='colordiff'
alias egrep='egrep --colour=auto'
alias e="vim -O "
alias E="vim -o "
alias extip='curl icanhazip.com'
alias grep='grep --color=auto'
alias l.=' ls -lhFa --time-style=long-iso --color=auto'
alias ll=' ls -al'
alias ls=' ls -lhF --time-style=long-iso --color=auto'
alias lsmount='mount |column -t'
alias mkdir='mkdir -pv'
alias ports='netstat -tulanp'
alias h='history'
alias j='jobs -l'
alias mv='mv -iv'
alias speedtest='curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -'
alias sproxy='ssh -p 2099 -D 9090 -q -C -N -f bzoicas@vpn.home-network.io'
alias ssha='eval $(ssh-agent) && ssh-add'
alias svim='sudo vim'
alias tn=' tmux new -s'
alias vdestroy='vagrant destroy'
alias vssh='vagrant ssh'
alias vup='vagrant up'
alias watch='watch -d'
alias weather='curl wttr.in'
alias wget='wget -c'
## get top process eating memory
alias mem5='ps auxf | sort -nr -k 4 | head -5'
alias mem10='ps auxf | sort -nr -k 4 | head -10'
## get top process eating cpu ##
alias cpu5='ps auxf | sort -nr -k 3 | head -5'
alias cpu10='ps auxf | sort -nr -k 3 | head -10'
## List largest directories (aka "ducks")
alias dir5='du -cksh * | sort -hr | head -n 5'
alias dir10='du -cksh * | sort -hr | head -n 10'
# Safetynets
# do not delete / or prompt if deleting more than 3 files at a time #
alias rm='rm -I --preserve-root'
# confirmation #
alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'
# Parenting changing perms on / #
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'
# reload bash config
alias reload="source ~/.bashrc"
# Manage packages easier
if [ -f /usr/bin/apt ]; then
alias update='sudo apt update'
alias upgrade='sudo apt update && sudo apt dist-upgrade && sudo apt autoremove && sudo apt clean'
alias install='sudo apt install'
fi
if [ -f /usr/bin/pacman ]; then
alias update='sudo pacman -Syyy'
alias upgrade='sudo pacman -Syu'
alias install='sudo pacman -S'
fi

View File

@@ -0,0 +1,39 @@
## Functions
# Make a directory, then go there
md() {
test -n "$1" || return
mkdir -p "$1" && cd "$1"
}
# "path" shows current path, one element per line.
# If an argument is supplied, grep for it.
path() {
test -n "$1" && {
echo $PATH | perl -p -e "s/:/\n/g;" | grep -i "$1"
} || {
echo $PATH | perl -p -e "s/:/\n/g;"
}
}
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjvf $1 ;;
*.tar.gz) tar xzvf $1 ;;
*.tar.xz) tar xvf $1 ;;
*.bz2) bzip2 -d $1 ;;
*.rar) unrar2dir $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip2dir $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*.ace) unace x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}

View File

@@ -0,0 +1,3 @@
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

View File

@@ -0,0 +1,2 @@
# PS1 Prompt
tty -s && export PS1="\[\033[38;5;35m\]\t [\[\033[38;5;33m\]\j\[\033[38;5;35m\]] [\h:\[$(tput sgr0)\]\[\033[38;5;33m\]\w\[$(tput setaf 3)\]\[\033[38;5;35m\]]\n\\[\033[38;5;35m\]🦄 \[$(tput sgr0)\]"

View File

@@ -0,0 +1,51 @@
# source bash prompt
source ~/.bash/bash_prompt
# Source bash aliases
source ~/.bash/bash_aliases
# Source bash functions
source ~/.bash/bash_functions
# Env
export TERM=xterm-256color
export EDITOR=vim
# Don't add duplicate lines or lines beginning with a space to the history
HISTCONTROL=ignoreboth
# Set history format to include timestamps
HISTTIMEFORMAT="%Y-%m-%d %T "
# Correct simple errors while using cd
shopt -s cdspell
# Add /home/$USER/bin to $PATH
case :$PATH: in
*:/home/$USER/bin:*) ;;
*) PATH=/home/$USER/bin:$PATH ;;
esac
# Add /home/$USER/.local/bin to $PATH
case :$PATH: in
*:/home/$USER/.local/bin:*) ;;
*) PATH=/home/$USER/.local/bin:$PATH ;;
esac
# Safetynets
# do not delete / or prompt if deleting more than 3 files at a time #
alias rm='rm -I --preserve-root'
# confirmation #
alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'
# Parenting changing perms on / #
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'
# reload bash config
alias reload="source ~/.bashrc"

View File

@@ -0,0 +1,3 @@
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

View File

@@ -0,0 +1,3 @@
[user]
name = bzoicas
email =

View File

@@ -0,0 +1,26 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=0 48 17 18 38 39 40 2 46 47 49 1
sort_key=46
sort_direction=1
hide_threads=0
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_megabytes=1
highlight_threads=1
tree_view=0
header_margin=1
detailed_cpu_time=0
cpu_count_from_zero=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
delay=15
left_meters=LeftCPUs2 CPU Memory Swap
left_meter_modes=1 1 1 1
right_meters=RightCPUs2 Tasks LoadAverage Uptime
right_meter_modes=1 2 2 2

View File

@@ -0,0 +1,2 @@
# Disable the annoying terminal beep
set bell-style none

View File

@@ -0,0 +1,143 @@
[Midnight-Commander]
verbose=1
pause_after_run=1
shell_patterns=1
auto_save_setup=1
preallocate_space=0
auto_menu=0
use_internal_view=1
use_internal_edit=0
clear_before_exec=1
confirm_delete=1
confirm_overwrite=1
confirm_execute=0
confirm_history_cleanup=1
confirm_exit=0
confirm_directory_hotlist_delete=1
safe_delete=0
mouse_repeat_rate=100
double_click_speed=250
use_8th_bit_as_meta=0
confirm_view_dir=0
mouse_move_pages_viewer=1
mouse_close_dialog=0
fast_refresh=0
drop_menus=0
wrap_mode=1
old_esc_mode=1
old_esc_mode_timeout=1000000
cd_symlinks=1
show_all_if_ambiguous=0
max_dirt_limit=10
use_file_to_guess_type=1
alternate_plus_minus=0
only_leading_plus_minus=1
show_output_starts_shell=0
xtree_mode=0
num_history_items_recorded=60
file_op_compute_totals=1
classic_progressbar=1
vfs_timeout=60
ftpfs_directory_timeout=900
use_netrc=1
ftpfs_retry_seconds=30
ftpfs_always_use_proxy=0
ftpfs_use_passive_connections=1
ftpfs_use_passive_connections_over_proxy=0
ftpfs_use_unix_list_options=1
ftpfs_first_cd_then_ls=1
fish_directory_timeout=900
editor_tab_spacing=8
editor_word_wrap_line_length=72
editor_fill_tabs_with_spaces=0
editor_return_does_auto_indent=0
editor_backspace_through_tabs=0
editor_fake_half_tabs=1
editor_option_save_mode=0
editor_option_save_position=1
editor_option_auto_para_formatting=0
editor_option_typewriter_wrap=0
editor_edit_confirm_save=1
editor_syntax_highlighting=1
editor_persistent_selections=1
editor_drop_selection_on_copy=1
editor_cursor_beyond_eol=0
editor_cursor_after_inserted_block=0
editor_visible_tabs=1
editor_visible_spaces=1
editor_line_state=0
editor_simple_statusbar=0
editor_check_new_line=0
editor_show_right_margin=0
editor_group_undo=1
editor_state_full_filename=1
editor_ask_filename_before_edit=0
nice_rotating_dash=1
mcview_remember_file_position=0
auto_fill_mkdir_name=1
copymove_persistent_attr=1
editor_backup_extension=~
editor_filesize_threshold=64M
editor_stop_format_chars=-+*\\,.;:&>
mcview_eof=
ignore_ftp_chattr_errors=true
skin=dark
[Layout]
message_visible=1
keybar_visible=1
xterm_title=1
output_lines=0
command_prompt=1
menubar_visible=1
free_space=1
horizontal_split=0
vertical_equal=1
left_panel_size=119
horizontal_equal=1
top_panel_size=1
[Misc]
timeformat_recent=%b %e %H:%M
timeformat_old=%b %e %Y
ftp_proxy_host=gate
ftpfs_password=anonymous@
display_codepage=UTF-8
source_codepage=Other_8_bit
autodetect_codeset=
spell_language=en
clipboard_store=
clipboard_paste=
[Colors]
base_color=
xterm=
color_terminals=
xterm-256color=
[Panels]
show_mini_info=true
kilobyte_si=false
mix_all_files=false
show_backups=true
show_dot_files=true
fast_reload=false
fast_reload_msg_shown=false
mark_moves_down=true
reverse_files_only=true
auto_save_setup_panels=false
navigate_with_arrows=false
panel_scroll_pages=true
mouse_move_pages=true
filetype_mode=true
permission_mode=false
torben_fj_mode=false
quick_search_mode=2
select_flags=6
[Panelize]
Find *.orig after patching=find . -name \\*.orig -print
Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
Find rejects after patching=find . -name \\*.rej -print
Modified git files=git ls-files --modified

View File

@@ -0,0 +1,25 @@
#!/bin/bash
SYMBOL='⬜'
if [[ `uname` == 'Linux' ]]; then
current_charge=$(cat /proc/acpi/battery/BAT1/state | grep 'remaining capacity' | awk '{print $3}')
total_charge=$(cat /proc/acpi/battery/BAT1/info | grep 'last full capacity' | awk '{print $4}')
else
battery_info=`ioreg -rc AppleSmartBattery`
current_charge=$(echo $battery_info | grep -o '"CurrentCapacity" = [0-9]\+' | awk '{print $3}')
total_charge=$(echo $battery_info | grep -o '"MaxCapacity" = [0-9]\+' | awk '{print $3}')
fi
charged_slots=$(echo "(($current_charge/$total_charge)*10)+1" | bc -l | cut -d '.' -f 1)
if [[ $charged_slots -gt 10 ]]; then
charged_slots=10
fi
echo -n '#[fg=red]'
for i in `seq 1 $charged_slots`; do echo -n "$SYMBOL"; done
if [[ $charged_slots -lt 10 ]]; then
echo -n '#[fg=red]'
for i in `seq 1 $(echo "10-$charged_slots" | bc)`; do echo -n "$SYMBOL"; done
fi

View File

@@ -0,0 +1,116 @@
# Initial setup
set -g default-terminal xterm-256color
set -g status-keys vi
# use C-j and C-f for the prefix.
set-option -g prefix C-j
set-option -g prefix2 C-f
unbind-key C-j
bind-key C-j send-prefix
set -g base-index 1
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# Easily reorder windows with CTRL+SHIFT+Arrow
bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1
# Synchronize panes
bind-key y set-window-option synchronize-panes\; display-message "synchronize mode toggled."
# Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded."
# Easy clear history
bind-key L clear-history
# Key bindings for copy-paste
setw -g mode-keys vi
unbind p
bind p paste-buffer
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
# Mouse Mode
set -g mouse on
# Lengthen the amount of time status messages are displayed
set-option -g display-time 3000
set-option -g display-panes-time 3000
# Set the base-index to 1 rather than 0
set -g base-index 1
set-window-option -g pane-base-index 1
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Allow the arrow key to be used immediately after changing windows.
set-option -g repeat-time 0
# No delay for escape key press
set -sg escape-time 0
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Plugins
run-shell /home/bzoicas/.tmux/plugins/continuum/continuum.tmux
run-shell /home/bzoicas/.tmux/plugins/resurrect/resurrect.tmux
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
# Theme
set-window-option -g window-status-current-style bold,bg=colour35,fg=colour234
set-window-option -g window-status-style fg=colour35
set -g window-status-activity-style bg=blue,fg=black
set-option -g message-style bg=colour237,fg=colour231
set-option -g pane-border-style fg=colour36
set-option -g pane-active-border-style fg=colour35
# Status Bar
set -g status-justify centre
set -g status-bg black
set -g status-fg colour35
set -g status-interval 60
set -g status-left-length 50
set -g status-left "#[bg=colour35]💻#[fg=colour234,bold] #H #[bg=colour234,nobold]#[fg=colour35] [#S] $tmux_target_lower "
set -g status-right '#[bg=colour234]#[fg=colour35]📈 #(cut -d " " -f 1-3 /proc/loadavg) #[bg=colour35]🕔 #[fg=colour234,bold]%H:%M '

View File

@@ -0,0 +1,116 @@
# Initial setup
set -g default-terminal xterm-256color
set -g status-keys vi
# use C-j and C-f for the prefix.
set-option -g prefix C-j
set-option -g prefix2 C-f
unbind-key C-j
bind-key C-j send-prefix
set -g base-index 1
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# Easily reorder windows with CTRL+SHIFT+Arrow
bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +
# Synchronize panes
bind-key y set-window-option synchronize-panes\; display-message "synchronize mode toggled."
# Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded."
# Easy clear history
bind-key L clear-history
# Key bindings for copy-paste
setw -g mode-keys vi
unbind p
bind p paste-buffer
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
# Mouse Mode
set -g mouse on
# Lengthen the amount of time status messages are displayed
set-option -g display-time 3000
set-option -g display-panes-time 3000
# Set the base-index to 1 rather than 0
set -g base-index 1
set-window-option -g pane-base-index 1
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Allow the arrow key to be used immediately after changing windows.
set-option -g repeat-time 0
# No delay for escape key press
set -sg escape-time 0
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Plugins
run-shell /home/bzoicas/.tmux/plugins/continuum/continuum.tmux
run-shell /home/bzoicas/.tmux/plugins/resurrect/resurrect.tmux
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
# Theme
set-window-option -g window-status-current-style bold,bg=colour35,fg=colour234
set-window-option -g window-status-style fg=colour35
set -g window-status-activity-style bg=blue,fg=black
set-option -g message-style bg=colour237,fg=colour231
set-option -g pane-border-style fg=colour36
set-option -g pane-active-border-style fg=colour35
# Status Bar
set -g status-justify centre
set -g status-bg black
set -g status-fg colour35
set -g status-interval 60
set -g status-left-length 50
set -g status-left "#[bg=colour35]💻#[fg=colour234,bold] #H #[bg=colour234,nobold]#[fg=colour35] [#S] $tmux_target_lower "
set -g status-right '#[bg=colour234]#[fg=colour35]📈 #(cut -d " " -f 1-3 /proc/loadavg) #[bg=colour35]🕔 #[fg=colour234,bold]%H:%M '

View File

@@ -0,0 +1,159 @@
" Bubblegum 256 Dark
" Author: baskerville <nihilhill@gmail.com>
" URL: github.com/baskerville/bubblegum
" Created: 2011
" Version: 0.3
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name="bubblegum-256-dark"
" Main
hi Normal ctermfg=249 ctermbg=235 cterm=none guifg=#B2B2B2 guibg=#262626 gui=none
hi Comment ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
" Constant
hi Constant ctermfg=186 ctermbg=235 cterm=none guifg=#D7D787 guibg=#262626 gui=none
hi String ctermfg=187 ctermbg=235 cterm=none guifg=#D7D7AF guibg=#262626 gui=none
hi Character ctermfg=187 ctermbg=235 cterm=none guifg=#D7D7AF guibg=#262626 gui=none
hi Number ctermfg=179 ctermbg=235 cterm=none guifg=#D7AF5F guibg=#262626 gui=none
hi Boolean ctermfg=187 ctermbg=235 cterm=none guifg=#D7D7AF guibg=#262626 gui=none
hi Float ctermfg=179 ctermbg=235 cterm=none guifg=#D7AF5F guibg=#262626 gui=none
" Variable Name
hi Identifier ctermfg=182 ctermbg=235 cterm=none guifg=#D7AFD7 guibg=#262626 gui=none
hi Function ctermfg=182 ctermbg=235 cterm=none guifg=#D7AFD7 guibg=#262626 gui=none
" Statement
hi Statement ctermfg=110 ctermbg=235 cterm=none guifg=#87AFD7 guibg=#262626 gui=none
hi Conditional ctermfg=110 ctermbg=235 cterm=none guifg=#87AFD7 guibg=#262626 gui=none
hi Repeat ctermfg=110 ctermbg=235 cterm=none guifg=#87AFD7 guibg=#262626 gui=none
hi Label ctermfg=110 ctermbg=235 cterm=none guifg=#87AFD7 guibg=#262626 gui=none
hi Operator ctermfg=110 ctermbg=235 cterm=none guifg=#87AFD7 guibg=#262626 gui=none
hi Keyword ctermfg=110 ctermbg=235 cterm=none guifg=#87AFD7 guibg=#262626 gui=none
hi Exception ctermfg=110 ctermbg=235 cterm=none guifg=#87AFD7 guibg=#262626 gui=none
" Preprocessor
hi PreProc ctermfg=150 ctermbg=235 cterm=none guifg=#AFD787 guibg=#262626 gui=none
hi Include ctermfg=150 ctermbg=235 cterm=none guifg=#AFD787 guibg=#262626 gui=none
hi Define ctermfg=150 ctermbg=235 cterm=none guifg=#AFD787 guibg=#262626 gui=none
hi Macro ctermfg=150 ctermbg=235 cterm=none guifg=#AFD787 guibg=#262626 gui=none
hi PreCondit ctermfg=150 ctermbg=235 cterm=none guifg=#AFD787 guibg=#262626 gui=none
" Type
hi Type ctermfg=146 ctermbg=235 cterm=none guifg=#AFAFD7 guibg=#262626 gui=none
hi StorageClass ctermfg=146 ctermbg=235 cterm=none guifg=#AFAFD7 guibg=#262626 gui=none
hi Structure ctermfg=146 ctermbg=235 cterm=none guifg=#AFAFD7 guibg=#262626 gui=none
hi Typedef ctermfg=146 ctermbg=235 cterm=none guifg=#AFAFD7 guibg=#262626 gui=none
" Special
hi Special ctermfg=174 ctermbg=235 cterm=none guifg=#D78787 guibg=#262626 gui=none
hi SpecialChar ctermfg=174 ctermbg=235 cterm=none guifg=#D78787 guibg=#262626 gui=none
hi Tag ctermfg=174 ctermbg=235 cterm=none guifg=#D78787 guibg=#262626 gui=none
hi Delimiter ctermfg=174 ctermbg=235 cterm=none guifg=#D78787 guibg=#262626 gui=none
hi SpecialComment ctermfg=174 ctermbg=235 cterm=none guifg=#D78787 guibg=#262626 gui=none
hi Debug ctermfg=174 ctermbg=235 cterm=none guifg=#D78787 guibg=#262626 gui=none
hi Underlined ctermfg=249 ctermbg=235 cterm=underline guifg=#B2B2B2 guibg=#262626 gui=underline
hi Ignore ctermfg=235 ctermbg=235 cterm=none guifg=#262626 guibg=#262626 gui=none
hi Error ctermfg=231 ctermbg=167 cterm=none guifg=#FFFFFF guibg=#D75F5F gui=none
hi Todo ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
" Window
hi StatusLine ctermfg=249 ctermbg=237 cterm=none guifg=#B2B2B2 guibg=#3A3A3A gui=none
hi StatusLineNC ctermfg=244 ctermbg=237 cterm=none guifg=#808080 guibg=#3A3A3A gui=none
hi TabLine ctermfg=249 ctermbg=237 cterm=none guifg=#B2B2B2 guibg=#3A3A3A gui=none
hi TabLineSel ctermfg=253 ctermbg=238 cterm=none guifg=#DADADA guibg=#444444 gui=none
hi TabLineFill ctermfg=249 ctermbg=237 cterm=none guifg=#B2B2B2 guibg=#3A3A3A gui=none
hi VertSplit ctermfg=237 ctermbg=237 cterm=none guifg=#3A3A3A guibg=#3A3A3A gui=none
" Menu
hi Pmenu ctermfg=249 ctermbg=237 cterm=none guifg=#B2B2B2 guibg=#3A3A3A gui=none
hi PmenuSel ctermfg=231 ctermbg=244 cterm=none guifg=#FFFFFF guibg=#808080 gui=none
hi PmenuSbar ctermfg=231 ctermbg=244 cterm=none guifg=#FFFFFF guibg=#808080 gui=none
hi PmenuThumb ctermfg=187 ctermbg=187 cterm=none guifg=#D7D7AF guibg=#D7D7AF gui=none
hi WildMenu ctermfg=232 ctermbg=98 cterm=none guifg=#080808 guibg=#875FD7 gui=none
" Selection
hi Visual ctermfg=235 ctermbg=117 cterm=none guifg=#262626 guibg=#87D7FF gui=none
hi VisualNOS ctermfg=235 ctermbg=80 cterm=none guifg=#262626 guibg=#5FD7D7 gui=none
" Message
hi ErrorMsg ctermfg=210 ctermbg=235 cterm=none guifg=#FF8787 guibg=#262626 gui=none
hi WarningMsg ctermfg=140 ctermbg=235 cterm=none guifg=#AF87D7 guibg=#262626 gui=none
hi MoreMsg ctermfg=72 ctermbg=235 cterm=none guifg=#5FAF87 guibg=#262626 gui=none
hi ModeMsg ctermfg=222 ctermbg=235 cterm=bold guifg=#FFD787 guibg=#262626 gui=bold
hi Question ctermfg=38 ctermbg=235 cterm=none guifg=#00AFD7 guibg=#262626 gui=none
" Mark
hi Folded ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi FoldColumn ctermfg=79 ctermbg=237 cterm=none guifg=#5FD7AF guibg=#3A3A3A gui=none
hi SignColumn ctermfg=79 ctermbg=237 cterm=none guifg=#5FD7AF guibg=#3A3A3A gui=none
hi ColorColumn ctermfg=79 ctermbg=237 cterm=none guifg=#5FD7AF guibg=#3A3A3A gui=none
hi LineNr ctermfg=244 ctermbg=237 cterm=none guifg=#808080 guibg=#3A3A3A gui=none
hi MatchParen ctermfg=16 ctermbg=215 cterm=none guifg=#000000 guibg=#FFAF5F gui=none
" Cursor
hi CursorColumn ctermfg=249 ctermbg=237 cterm=none guifg=#B2B2B2 guibg=#3A3A3A gui=none
hi CursorLine ctermfg=249 ctermbg=237 cterm=none guifg=#B2B2B2 guibg=#3A3A3A gui=none
hi CursorLineNr ctermfg=249 ctermbg=237 cterm=none guifg=#B2B2B2 guibg=#3A3A3A gui=none
" Search
hi Search ctermfg=16 ctermbg=179 cterm=none guifg=#000000 guibg=#D7AF5F gui=none
hi IncSearch ctermfg=231 ctermbg=168 cterm=none guifg=#FFFFFF guibg=#D75F87 gui=none
" Diff Mode
hi DiffAdd ctermfg=16 ctermbg=149 cterm=none guifg=#000000 guibg=#AFD75F gui=none
hi DiffChange ctermfg=16 ctermbg=217 cterm=none guifg=#000000 guibg=#FFAFAF gui=none
hi DiffText ctermfg=16 ctermbg=211 cterm=bold guifg=#000000 guibg=#FF87AF gui=bold
hi DiffDelete ctermfg=16 ctermbg=249 cterm=none guifg=#000000 guibg=#B2B2B2 gui=none
" Spell
hi SpellBad ctermfg=210 ctermbg=235 cterm=underline guifg=#FF8787 guibg=#262626 gui=underline
hi SpellCap ctermfg=174 ctermbg=235 cterm=underline guifg=#D78787 guibg=#262626 gui=underline
hi SpellRare ctermfg=181 ctermbg=235 cterm=underline guifg=#D7AFAF guibg=#262626 gui=underline
hi SpellLocal ctermfg=180 ctermbg=235 cterm=underline guifg=#D7AF87 guibg=#262626 gui=underline
" Misc
hi SpecialKey ctermfg=114 ctermbg=235 cterm=none guifg=#87D787 guibg=#262626 gui=none
hi NonText ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi Directory ctermfg=103 ctermbg=235 cterm=none guifg=#8787AF guibg=#262626 gui=none
hi Title ctermfg=109 ctermbg=235 cterm=none guifg=#87AFAF guibg=#262626 gui=none
hi Conceal ctermfg=77 ctermbg=235 cterm=none guifg=#5FD75F guibg=#262626 gui=none
hi Noise ctermfg=247 ctermbg=235 cterm=none guifg=#9E9E9E guibg=#262626 gui=none
hi helpHyperTextJump ctermfg=74 ctermbg=235 cterm=none guifg=#5FAFD7 guibg=#262626 gui=none
hi perlSharpBang ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi rubySharpBang ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi jsFuncCall ctermfg=116 ctermbg=235 cterm=none guifg=#87D7D7 guibg=#262626 gui=none
" Html
hi javaScriptNumber ctermfg=179 ctermbg=235 cterm=none guifg=#D7AF5F guibg=#262626 gui=none
hi htmlTag ctermfg=147 ctermbg=235 cterm=none guifg=#AFAFFF guibg=#262626 gui=none
hi htmlEndTag ctermfg=147 ctermbg=235 cterm=none guifg=#AFAFFF guibg=#262626 gui=none
hi htmlTagName ctermfg=175 ctermbg=235 cterm=none guifg=#D787AF guibg=#262626 gui=none
hi htmlString ctermfg=144 ctermbg=235 cterm=none guifg=#AFAF87 guibg=#262626 gui=none
" Vim
hi vimFold ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi vimCommentTitle ctermfg=249 ctermbg=235 cterm=none guifg=#B2B2B2 guibg=#262626 gui=none
" Diff File
hi diffFile ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi diffLine ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi diffAdded ctermfg=107 ctermbg=235 cterm=none guifg=#87AF5F guibg=#262626 gui=none
hi diffRemoved ctermfg=175 ctermbg=235 cterm=none guifg=#D787AF guibg=#262626 gui=none
hi diffChanged ctermfg=179 ctermbg=235 cterm=none guifg=#D7AF5F guibg=#262626 gui=none
hi diffOldLine ctermfg=104 ctermbg=235 cterm=none guifg=#8787D7 guibg=#262626 gui=none
" Mail
hi mailSubject ctermfg=109 ctermbg=235 cterm=none guifg=#87AFAF guibg=#262626 gui=none
hi mailSignature ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
" Markdown
hi markdownCode ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi markdownCodeBlock ctermfg=244 ctermbg=235 cterm=none guifg=#808080 guibg=#262626 gui=none
hi markdownItalic ctermfg=252 ctermbg=235 cterm=none guifg=#D0D0D0 guibg=#262626 gui=none

View File

@@ -0,0 +1,6 @@
setlocal tabstop=2
setlocal softtabstop=2
setlocal shiftwidth=2
setlocal textwidth=80
setlocal smarttab
setlocal expandtab

View File

@@ -0,0 +1,78 @@
" Only do this when not done yet for this buffer
if exists("b:did_CPP_ftplugin")
finish
endif
let b:did_CPP_ftplugin = 1
" =================================================
" tab
" =================================================
setlocal tabstop=2
setlocal softtabstop=2
setlocal shiftwidth=2
" =================================================
" Completion
" =================================================
" dictionary
setlocal dictionary=~/.vim/dict/cpp-libstdc++.dict,~/.vim/dict/c-eglibc.dict,~/.vim/dict/cpp-boost.dict
" tags
" OmniCppComplete
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_MayCompleteDot = 1
let OmniCpp_MayCompleteArrow = 1
let OmniCpp_MayCompleteScope = 1
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
" Set completement for C++
setlocal omnifunc=cppcomplete#Complete
" Set F12 to use ctags for C++
map <F12> :!ctags -R c++-kinds=+p fields=+iaS extra=+q .<CR>
" =================================================
" cscope settings
" =================================================
nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>
if has("cscope")
setlocal csprg=/usr/bin/cscope
setlocal csto=0
setlocal cst
setlocal nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
setlocal csverb
setlocal cscopetag
setlocal cscopequickfix=s-,g-,c-,d-,t-,e-,f-,i-
endif
function! s:clang_format()
let now_line = line(".")
exec ":%! clang-format -style=Google"
exec ":" . now_line
endfunction
if executable('clang-format')
augroup cpp_clang_format
autocmd!
autocmd BufWrite,FileWritePre,FileAppendPre *.[ch]pp call s:clang_format()
augroup END
endif

View File

@@ -0,0 +1,75 @@
" Vim color file
" Name: DarkTango
" Maintainer: Panos Laganakos <panos.laganakos@gmail.com>
" Version: 0.3
set background=dark
if version > 580
" no guarantees for version 5.8 and below, but this makes it stop
" complaining
hi clear
if exists("syntax_on")
syntax reset
endif
endif
let g:colors_name="darktango"
hi Normal guibg=#2e3436 guifg=#d3d7cf
" {{{ syntax
hi Comment guifg=#555753
hi Title guifg=#eeeeec
hi Underlined guifg=#20b0eF gui=none
hi Statement guifg=#888a85
hi Type guifg=#ce5c00
hi PreProc guifg=#eeeeec
hi Constant guifg=#babdb6
hi Identifier guifg=#ce5c00
hi Special guifg=#eeeeec
hi Ignore guifg=#f57900
hi Todo guibg=#ce5c00 guifg=#eeeeec
"hi Error
"}}}
" {{{ groups
hi Cursor guibg=#babdb6 guifg=#2e3436
"hi CursorIM
hi Directory guifg=#bbd0df
"hi DiffAdd
"hi DiffChange
"hi DiffDelete
"hi DiffText
"hi ErrorMsg
hi VertSplit guibg=#555753 guifg=#2e3436 gui=none
hi Folded guibg=#555753 guifg=#eeeeec
hi FoldColumn guibg=#2e3436 guifg=#555753
hi LineNr guibg=#2e3436 guifg=#555753
hi MatchParen guibg=#babdb6 guifg=#2e3436
hi ModeMsg guifg=#ce5c00
hi MoreMsg guifg=#ce5c00
hi NonText guibg=#2e3436 guifg=#555753
hi Question guifg=#aabbcc
hi Search guibg=#fce94f guifg=#c4a000
hi IncSearch guibg=#c4a000 guifg=#fce94f
hi SpecialKey guifg=#ce5c00
hi StatusLine guibg=#555753 guifg=#eeeeec gui=none
hi StatusLineNC guibg=#555753 guifg=#272334 gui=none
hi Visual guibg=#fcaf3e guifg=#ce5c00
"hi VisualNOS
hi WarningMsg guifg=salmon
"hi WildMenu
"hi Menu
"hi Scrollbar guibg=grey30 guifg=tan
"hi Tooltip
hi Pmenu guibg=#babdb6 guifg=#555753
hi PmenuSel guibg=#eeeeec guifg=#2e3436
hi CursorLine guibg=#212628
" }}}
" {{{ terminal
" TODO
" }}}
"vim: sw=4

View File

@@ -0,0 +1,504 @@
" Vim indent script for HTML
" General: "{{{
" File: html.vim (Vimscript #2075)
" Author: Andy Wokula <anwoku@yahoo.de>
" Last Change: 2014 Jan 27
" Rev Days: 18
" Version: 0.10
" Vim Version: Vim7
" Description:
" Improved version of the distributed html indent script, faster on a
" range of lines.
"
" Credits:
" indent/html.vim (2006 Jun 05) from J. Zellner
" indent/css.vim (2006 Dec 20) from N. Weibull
"
" History:
" 2014 Jan 27 (v0.10) added b:html_indent_usestate; and a bug fix
" 2012 Oct 21 (v0.9) added support for shiftwidth()
" 2011 Sep 09 (v0.8) added HTML5 tags (thx to J. Zuckerman)
" 2008 Apr 28 (v0.6) revised customization
" 2008 Mar 09 (v0.5) fixed 'indk' issue (thx to C.J. Robinson)
" }}}
" Init Folklore, check user settings (2nd time ++) "{{{
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=HtmlIndent()
setlocal indentkeys=o,O,<Return>,<>>,{,},!^F
let b:indent = {"lnum": -1}
let b:undo_indent = "set inde< indk<| unlet b:indent"
" Load Once:
if exists("*HtmlIndent")
call HtmlIndent_CheckUserSettings()
finish
endif
" Patch 7.3.694
if exists('*shiftwidth')
let s:ShiftWidth = function('shiftwidth')
else
func! s:ShiftWidth()
return &shiftwidth
endfunc
endif
let s:cpo_save = &cpo
set cpo-=C
"}}}
func! HtmlIndent_CheckUserSettings() "{{{
if exists("g:html_indent_inctags")
call s:AddITags(split(g:html_indent_inctags, ","))
endif
if exists("g:html_indent_autotags")
call s:RemoveITags(split(g:html_indent_autotags, ","))
endif
let indone = {"zero": 0
\,"auto": "indent(prevnonblank(v:lnum-1))"
\,"inc": "b:indent.blocktagind + s:ShiftWidth()"}
if exists("g:html_indent_script1")
let s:js1indent = get(indone, g:html_indent_script1, indone.zero)
endif
if exists("g:html_indent_style1")
let s:css1indent = get(indone, g:html_indent_style1, indone.zero)
endif
endfunc "}}}
" Init Script Vars "{{{
let s:usestate = 1
let s:css1indent = 0
let s:js1indent = 0
" not to be changed:
let s:endtags = [0,0,0,0,0,0,0,0] " some places unused
let s:newstate = {}
let s:countonly = 0
"}}}
func! s:AddITags(taglist) "{{{
for itag in a:taglist
let s:indent_tags[itag] = 1
let s:indent_tags['/'.itag] = -1
endfor
endfunc "}}}
func! s:AddBlockTag(tag, id, ...) "{{{
if !(a:id >= 2 && a:id < 2+len(s:endtags))
return
endif
let s:indent_tags[a:tag] = a:id
if a:0 == 0
let s:indent_tags['/'.a:tag] = -a:id
let s:endtags[a:id-2] = "</".a:tag.">"
else
let s:indent_tags[a:1] = -a:id
let s:endtags[a:id-2] = a:1
endif
endfunc "}}}
func! s:RemoveITags(taglist) "{{{
" remove itags (protect blocktags from being removed)
for itag in a:taglist
if !has_key(s:indent_tags, itag) || s:indent_tags[itag] != 1
continue
endif
unlet s:indent_tags[itag]
if itag =~ '^\w\+$'
unlet s:indent_tags["/".itag]
endif
endfor
endfunc "}}}
" Add Indent Tags: {{{
if !exists("s:indent_tags")
let s:indent_tags = {}
endif
" old tags:
call s:AddITags(['a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big',
\ 'blockquote', 'button', 'caption', 'center', 'cite', 'code', 'colgroup',
\ 'del', 'dfn', 'dir', 'div', 'dl', 'em', 'fieldset', 'font', 'form',
\ 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'i', 'iframe', 'ins', 'kbd',
\ 'label', 'legend', 'map', 'menu', 'noframes', 'noscript', 'object', 'ol',
\ 'optgroup', 'q', 's', 'samp', 'select', 'small', 'span', 'strong', 'sub',
\ 'sup', 'table', 'textarea', 'title', 'tt', 'u', 'ul', 'var', 'th', 'td',
\ 'tr', 'tfoot', 'thead'])
" tags added 2011 Sep 09 (especially HTML5 tags):
call s:AddITags(['area', 'article', 'aside', 'audio', 'bdi', 'canvas',
\ 'command', 'datalist', 'details', 'embed', 'figure', 'footer',
\ 'header', 'group', 'keygen', 'mark', 'math', 'meter', 'nav', 'output',
\ 'progress', 'ruby', 'section', 'svg', 'texture', 'time', 'video',
\ 'wbr', 'text'])
"}}}
" Add Block Tags: contain alien content "{{{
call s:AddBlockTag('pre', 2)
call s:AddBlockTag('script', 3)
call s:AddBlockTag('style', 4)
call s:AddBlockTag('<!--', 5, '-->')
"}}}
func! s:CountITags(...) "{{{
" relative indent steps for current line [unit &sw]:
let s:curind = 0
" relative indent steps for next line [unit &sw]:
let s:nextrel = 0
if a:0==0
let s:block = s:newstate.block
let tmpline = substitute(s:curline, '<\zs\/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
if s:block == 3
let s:newstate.scripttype = s:GetScriptType(matchstr(tmpline, '\C.*<SCRIPT\>\zs[^>]*'))
endif
let s:newstate.block = s:block
else
let s:block = 0 " assume starting outside of a block
let s:countonly = 1 " don't change state
let tmpline = substitute(s:altline, '<\zs\/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g')
let s:countonly = 0
endif
endfunc "}}}
func! s:CheckTag(itag) "{{{
" "tag" or "/tag" or "<!--" or "-->"
let ind = get(s:indent_tags, a:itag)
if ind == -1
" closing tag
if s:block != 0
" ignore itag within a block
return "foo"
endif
if s:nextrel == 0
let s:curind -= 1
else
let s:nextrel -= 1
endif
" if s:curind >= 1
" let s:curind -= 1
" else
" let s:nextrel -= 1
" endif
elseif ind == 1
" opening tag
if s:block != 0
return "foo"
endif
let s:nextrel += 1
elseif ind != 0
" block-tag (opening or closing)
return s:Blocktag(a:itag, ind)
endif
" else ind==0 (other tag found): keep indent
return "foo" " no matter
endfunc "}}}
func! s:Blocktag(blocktag, ind) "{{{
if a:ind > 0
" a block starts here
if s:block != 0
" already in a block (nesting) - ignore
" especially ignore comments after other blocktags
return "foo"
endif
let s:block = a:ind " block type
if s:countonly
return "foo"
endif
let s:newstate.blocklnr = v:lnum
" save allover indent for the endtag
let s:newstate.blocktagind = b:indent.baseindent + (s:nextrel + s:curind) * s:ShiftWidth()
if a:ind == 3
return "SCRIPT" " all except this must be lowercase
" line is to be checked again for the type attribute
endif
else
let s:block = 0
" we get here if starting and closing block-tag on same line
endif
return "foo"
endfunc "}}}
func! s:GetScriptType(str) "{{{
if a:str == "" || a:str =~ "java"
return "javascript"
else
return ""
endif
endfunc "}}}
func! s:FreshState(lnum) "{{{
" Look back in the file (lines 1 to a:lnum-1) to calc a state for line
" a:lnum. A state is to know ALL relevant details about the lines
" 1..a:lnum-1, initial calculating (here!) can be slow, but updating is
" fast (incremental).
" State:
" lnum last indented line == prevnonblank(a:lnum - 1)
" block = 0 a:lnum located within special tag: 0:none, 2:<pre>,
" 3:<script>, 4:<style>, 5:<!--
" baseindent use this indent for line a:lnum as a start - kind of
" autoindent (if block==0)
" scripttype = '' type attribute of a script tag (if block==3)
" blocktagind indent for current opening (get) and closing (set)
" blocktag (if block!=0)
" blocklnr lnum of starting blocktag (if block!=0)
" inattr line {lnum} starts with attributes of a tag
let state = {}
let state.lnum = prevnonblank(a:lnum - 1)
let state.scripttype = ""
let state.blocktagind = -1
let state.block = 0
let state.baseindent = 0
let state.blocklnr = 0
let state.inattr = 0
if state.lnum == 0
return state
endif
" Heuristic:
" remember startline state.lnum
" look back for <pre, </pre, <script, </script, <style, </style tags
" remember stopline
" if opening tag found,
" assume a:lnum within block
" else
" look back in result range (stopline, startline) for comment
" \ delimiters (<!--, -->)
" if comment opener found,
" assume a:lnum within comment
" else
" assume usual html for a:lnum
" if a:lnum-1 has a closing comment
" look back to get indent of comment opener
" FI
" look back for blocktag
call cursor(a:lnum, 1)
let [stopline, stopcol] = searchpos('\c<\zs\/\=\%(pre\>\|script\>\|style\>\)', "bW")
" fugly ... why isn't there searchstr()
let tagline = tolower(getline(stopline))
let blocktag = matchstr(tagline, '\/\=\%(pre\>\|script\>\|style\>\)', stopcol-1)
if stopline > 0 && blocktag[0] != "/"
" opening tag found, assume a:lnum within block
let state.block = s:indent_tags[blocktag]
if state.block == 3
let state.scripttype = s:GetScriptType(matchstr(tagline, '\>[^>]*', stopcol))
endif
let state.blocklnr = stopline
" check preceding tags in the line:
let s:altline = tagline[: stopcol-2]
call s:CountITags(1)
let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * s:ShiftWidth()
return state
elseif stopline == state.lnum
" handle special case: previous line (= state.lnum) contains a
" closing blocktag which is preceded by line-noise;
" blocktag == "/..."
let swendtag = match(tagline, '^\s*</') >= 0
if !swendtag
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bW")
let s:altline = tolower(getline(bline)[: bcol-2])
call s:CountITags(1)
let state.baseindent = indent(bline) + (s:nextrel+s:curind) * s:ShiftWidth()
return state
endif
endif
" else look back for comment
call cursor(a:lnum, 1)
let [comline, comcol, found] = searchpos('\(<!--\)\|-->', 'bpW', stopline)
if found == 2
" comment opener found, assume a:lnum within comment
let state.block = 5
let state.blocklnr = comline
" check preceding tags in the line:
let s:altline = tolower(getline(comline)[: comcol-2])
call s:CountITags(1)
let state.blocktagind = indent(comline) + (s:curind + s:nextrel) * s:ShiftWidth()
return state
endif
" else within usual html
let s:altline = tolower(getline(state.lnum))
" check a:lnum-1 for closing comment (we need indent from the opening line)
let comcol = stridx(s:altline, '-->')
if comcol >= 0
call cursor(state.lnum, comcol+1)
let [comline, comcol] = searchpos('<!--', 'bW')
if comline == state.lnum
let s:altline = s:altline[: comcol-2]
else
let s:altline = tolower(getline(comline)[: comcol-2])
endif
call s:CountITags(1)
let state.baseindent = indent(comline) + (s:nextrel+s:curind) * s:ShiftWidth()
return state
" TODO check tags that follow "-->"
endif
" else no comments
call s:CountITags(1)
let state.baseindent = indent(state.lnum) + s:nextrel * s:ShiftWidth()
" line starts with end tag
let swendtag = match(s:altline, '^\s*</') >= 0
if !swendtag
let state.baseindent += s:curind * s:ShiftWidth()
endif
return state
endfunc "}}}
func! s:Alien2() "{{{
" <pre> block
return -1
endfunc "}}}
func! s:Alien3() "{{{
" <script> javascript
if prevnonblank(v:lnum-1) == b:indent.blocklnr
" indent for the first line after <script>
return eval(s:js1indent)
endif
if b:indent.scripttype == "javascript"
return cindent(v:lnum)
else
return -1
endif
endfunc "}}}
func! s:Alien4() "{{{
" <style>
if prevnonblank(v:lnum-1) == b:indent.blocklnr
" indent for first content line
return eval(s:css1indent)
endif
return s:CSSIndent()
endfunc
func! s:CSSIndent() "{{{
" adopted $VIMRUNTIME/indent/css.vim
if getline(v:lnum) =~ '^\s*[*}]'
return cindent(v:lnum)
endif
let minline = b:indent.blocklnr
let pnum = s:css_prevnoncomment(v:lnum - 1, minline)
if pnum <= minline
" < is to catch errors
" indent for first content line after comments
return eval(s:css1indent)
endif
let ind = indent(pnum) + s:css_countbraces(pnum, 1) * s:ShiftWidth()
let pline = getline(pnum)
if pline =~ '}\s*$'
let ind -= (s:css_countbraces(pnum, 0) - (pline =~ '^\s*}')) * s:ShiftWidth()
endif
return ind
endfunc "}}}
func! s:css_prevnoncomment(lnum, stopline) "{{{
" caller starts from a line a:lnum-1 that is not a comment
let lnum = prevnonblank(a:lnum)
let ccol = match(getline(lnum), '\*/')
if ccol < 0
return lnum
endif
call cursor(lnum, ccol+1)
let lnum = search('/\*', 'bW', a:stopline)
if indent(".") == virtcol(".")-1
return prevnonblank(lnum-1)
else
return lnum
endif
endfunc "}}}
func! s:css_countbraces(lnum, count_open) "{{{
let brs = substitute(getline(a:lnum),'[''"].\{-}[''"]\|/\*.\{-}\*/\|/\*.*$\|[^{}]','','g')
let n_open = 0
let n_close = 0
for brace in split(brs, '\zs')
if brace == "{"
let n_open += 1
elseif brace == "}"
if n_open > 0
let n_open -= 1
else
let n_close += 1
endif
endif
endfor
return a:count_open ? n_open : n_close
endfunc "}}}
"}}}
func! s:Alien5() "{{{
" <!-- -->
return -1
endfunc "}}}
func! HtmlIndent() "{{{
let s:curline = tolower(getline(v:lnum))
let indentunit = s:ShiftWidth()
let s:newstate = {}
let s:newstate.lnum = v:lnum
" does the line start with a closing tag?
let swendtag = match(s:curline, '^\s*</') >= 0
if prevnonblank(v:lnum-1) != b:indent.lnum || (exists("b:html_indent_usestate") && !b:html_indent_usestate)
" start over, don't use state
let b:indent = s:FreshState(v:lnum)
endif
if b:indent.block >= 2
" within block
let endtag = s:endtags[b:indent.block-2]
let blockend = stridx(s:curline, endtag)
if blockend >= 0
" block ends here
let s:newstate.block = 0
" calc indent for REST OF LINE (may start more blocks):
let s:curline = strpart(s:curline, blockend+strlen(endtag))
call s:CountITags()
if swendtag && b:indent.block != 5
let indent = b:indent.blocktagind + s:curind * indentunit
let s:newstate.baseindent = indent + s:nextrel * indentunit
else
let indent = s:Alien{b:indent.block}()
let s:newstate.baseindent = b:indent.blocktagind + s:nextrel * indentunit
endif
call extend(b:indent, s:newstate, "force")
return indent
else
" block continues
" indent this line with alien method
let indent = s:Alien{b:indent.block}()
call extend(b:indent, s:newstate, "force")
return indent
endif
else
" not within a block - within usual html
" if < 2 then always 0
let s:newstate.block = b:indent.block
call s:CountITags()
if swendtag
let indent = b:indent.baseindent + s:curind * indentunit
let s:newstate.baseindent = indent + s:nextrel * indentunit
else
let indent = b:indent.baseindent
let s:newstate.baseindent = indent + (s:curind + s:nextrel) * indentunit
endif
call extend(b:indent, s:newstate, "force")
return indent
endif
endfunc "}}}
" check user settings (first time), clear cpo, Modeline: {{{1
" DEBUG:
com! -nargs=* IndHtmlLocal <args>
call HtmlIndent_CheckUserSettings()
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set fdm=marker ts=8:

View File

@@ -0,0 +1,569 @@
" 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. <henryso@panix.com>
" David Liang <bmdavll at gmail dot com>
" 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
" HTML
hi! link htmlTag Statement
hi! link htmlEndTag htmlTag
hi! link htmlTagName htmlTag
" XML
hi! link xmlTag Statement
hi! link xmlEndTag xmlTag
hi! link xmlTagName xmlTag
hi! link xmlEqual xmlTag
hi! link xmlEntity Special
hi! link xmlEntityPunct xmlEntity
hi! link xmlDocTypeDecl PreProc
hi! link xmlDocTypeKeyword PreProc
hi! link xmlProcessingDelim xmlAttrib
" 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
" }}}

View File

@@ -0,0 +1,353 @@
" pathogen.vim - path option manipulation
" Maintainer: Tim Pope <http://tpo.pe/>
" Version: 2.4
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
"
" For management of individually installed plugins in ~/.vim/bundle (or
" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
" .vimrc is the only other setup necessary.
"
" The API is documented inline below.
if exists("g:loaded_pathogen") || &cp
finish
endif
let g:loaded_pathogen = 1
" Point of entry for basic default usage. Give a relative path to invoke
" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke
" pathogen#surround(). Curly braces are expanded with pathogen#expand():
" "bundle/{}" finds all subdirectories inside "bundle" inside all directories
" in the runtime path.
function! pathogen#infect(...) abort
for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}']
if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]'
call pathogen#surround(path)
elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)'
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
call pathogen#surround(path . '/{}')
elseif path =~# '[{}*]'
call pathogen#interpose(path)
else
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
call pathogen#interpose(path . '/{}')
endif
endfor
call pathogen#cycle_filetype()
if pathogen#is_disabled($MYVIMRC)
return 'finish'
endif
return ''
endfunction
" Split a path into a list.
function! pathogen#split(path) abort
if type(a:path) == type([]) | return a:path | endif
if empty(a:path) | return [] | endif
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
endfunction
" Convert a list to a path.
function! pathogen#join(...) abort
if type(a:1) == type(1) && a:1
let i = 1
let space = ' '
else
let i = 0
let space = ''
endif
let path = ""
while i < a:0
if type(a:000[i]) == type([])
let list = a:000[i]
let j = 0
while j < len(list)
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
let path .= ',' . escaped
let j += 1
endwhile
else
let path .= "," . a:000[i]
endif
let i += 1
endwhile
return substitute(path,'^,','','')
endfunction
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
function! pathogen#legacyjoin(...) abort
return call('pathogen#join',[1] + a:000)
endfunction
" Turn filetype detection off and back on again if it was already enabled.
function! pathogen#cycle_filetype() abort
if exists('g:did_load_filetypes')
filetype off
filetype on
endif
endfunction
" Check if a bundle is disabled. A bundle is considered disabled if its
" basename or full name is included in the list g:pathogen_blacklist or the
" comma delimited environment variable $VIMBLACKLIST.
function! pathogen#is_disabled(path) abort
if a:path =~# '\~$'
return 1
endif
let sep = pathogen#slash()
let blacklist =
\ get(g:, 'pathogen_blacklist', get(g:, 'pathogen_disabled', [])) +
\ pathogen#split($VIMBLACKLIST)
if !empty(blacklist)
call map(blacklist, 'substitute(v:val, "[\\/]$", "", "")')
endif
return index(blacklist, fnamemodify(a:path, ':t')) != -1 || index(blacklist, a:path) != -1
endfunction
" Prepend the given directory to the runtime path and append its corresponding
" after directory. Curly braces are expanded with pathogen#expand().
function! pathogen#surround(path) abort
let sep = pathogen#slash()
let rtp = pathogen#split(&rtp)
let path = fnamemodify(a:path, ':s?[\\/]\=$??')
let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
let after = filter(reverse(pathogen#expand(path, sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
call filter(rtp, 'index(before + after, v:val) == -1')
let &rtp = pathogen#join(before, rtp, after)
return &rtp
endfunction
" For each directory in the runtime path, add a second entry with the given
" argument appended. Curly braces are expanded with pathogen#expand().
function! pathogen#interpose(name) abort
let sep = pathogen#slash()
let name = a:name
if has_key(s:done_bundles, name)
return ""
endif
let s:done_bundles[name] = 1
let list = []
for dir in pathogen#split(&rtp)
if dir =~# '\<after$'
let list += reverse(filter(pathogen#expand(dir[0:-6].name, sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
else
let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
endif
endfor
let &rtp = pathogen#join(pathogen#uniq(list))
return 1
endfunction
let s:done_bundles = {}
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
function! pathogen#helptags() abort
let sep = pathogen#slash()
for glob in pathogen#split(&rtp)
for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
silent! execute 'helptags' pathogen#fnameescape(dir)
endif
endfor
endfor
endfunction
command! -bar Helptags :call pathogen#helptags()
" Execute the given command. This is basically a backdoor for --remote-expr.
function! pathogen#execute(...) abort
for command in a:000
execute command
endfor
return ''
endfunction
" Section: Unofficial
function! pathogen#is_absolute(path) abort
return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
endfunction
" Given a string, returns all possible permutations of comma delimited braced
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
" and globbed. Actual globs are preserved.
function! pathogen#expand(pattern, ...) abort
let after = a:0 ? a:1 : ''
if a:pattern =~# '{[^{}]\+}'
let [pre, pat, post] = split(substitute(a:pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
let found = map(split(pat, ',', 1), 'pre.v:val.post')
let results = []
for pattern in found
call extend(results, pathogen#expand(pattern))
endfor
elseif a:pattern =~# '{}'
let pat = matchstr(a:pattern, '^.*{}[^*]*\%($\|[\\/]\)')
let post = a:pattern[strlen(pat) : -1]
let results = map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
else
let results = [a:pattern]
endif
let vf = pathogen#slash() . 'vimfiles'
call map(results, 'v:val =~# "\\*" ? v:val.after : isdirectory(v:val.vf.after) ? v:val.vf.after : isdirectory(v:val.after) ? v:val.after : ""')
return filter(results, '!empty(v:val)')
endfunction
" \ on Windows unless shellslash is set, / everywhere else.
function! pathogen#slash() abort
return !exists("+shellslash") || &shellslash ? '/' : '\'
endfunction
function! pathogen#separator() abort
return pathogen#slash()
endfunction
" Convenience wrapper around glob() which returns a list.
function! pathogen#glob(pattern) abort
let files = split(glob(a:pattern),"\n")
return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
endfunction
" Like pathogen#glob(), only limit the results to directories.
function! pathogen#glob_directories(pattern) abort
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
endfunction
" Remove duplicates from a list.
function! pathogen#uniq(list) abort
let i = 0
let seen = {}
while i < len(a:list)
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
call remove(a:list,i)
elseif a:list[i] ==# ''
let i += 1
let empty = 1
else
let seen[a:list[i]] = 1
let i += 1
endif
endwhile
return a:list
endfunction
" Backport of fnameescape().
function! pathogen#fnameescape(string) abort
if exists('*fnameescape')
return fnameescape(a:string)
elseif a:string ==# '-'
return '\-'
else
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
endif
endfunction
" Like findfile(), but hardcoded to use the runtimepath.
function! pathogen#runtime_findfile(file,count) abort
let rtp = pathogen#join(1,pathogen#split(&rtp))
let file = findfile(a:file,rtp,a:count)
if file ==# ''
return ''
else
return fnamemodify(file,':p')
endif
endfunction
" Section: Deprecated
function! s:warn(msg) abort
echohl WarningMsg
echomsg a:msg
echohl NONE
endfunction
" Prepend all subdirectories of path to the rtp, and append all 'after'
" directories in those subdirectories. Deprecated.
function! pathogen#runtime_prepend_subdirectories(path) abort
call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')')
return pathogen#surround(a:path . pathogen#slash() . '{}')
endfunction
function! pathogen#incubate(...) abort
let name = a:0 ? a:1 : 'bundle/{}'
call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')')
return pathogen#interpose(name)
endfunction
" Deprecated alias for pathogen#interpose().
function! pathogen#runtime_append_all_bundles(...) abort
if a:0
call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')')
else
call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()')
endif
return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}')
endfunction
if exists(':Vedit')
finish
endif
let s:vopen_warning = 0
function! s:find(count,cmd,file,lcd)
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
let file = pathogen#runtime_findfile(a:file,a:count)
if file ==# ''
return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
endif
if !s:vopen_warning
let s:vopen_warning = 1
let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE'
else
let warning = ''
endif
if a:lcd
let path = file[0:-strlen(a:file)-2]
execute 'lcd `=path`'
return a:cmd.' '.pathogen#fnameescape(a:file) . warning
else
return a:cmd.' '.pathogen#fnameescape(file) . warning
endif
endfunction
function! s:Findcomplete(A,L,P)
let sep = pathogen#slash()
let cheats = {
\'a': 'autoload',
\'d': 'doc',
\'f': 'ftplugin',
\'i': 'indent',
\'p': 'plugin',
\'s': 'syntax'}
if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
let request = cheats[a:A[0]].a:A[1:-1]
else
let request = a:A
endif
let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*'
let found = {}
for path in pathogen#split(&runtimepath)
let path = expand(path, ':p')
let matches = split(glob(path.sep.pattern),"\n")
call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
for match in matches
let found[match] = 1
endfor
endfor
return sort(keys(found))
endfunction
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':

View File

@@ -0,0 +1,89 @@
" Vim filetype plugin file
" Language: Perl
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: {{LAST_CHANGE}}
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
" Make sure the continuation lines below do not cause problems in
" compatibility mode.
let s:save_cpo = &cpo
set cpo-=C
setlocal formatoptions-=t
setlocal formatoptions+=crqol
setlocal keywordprg=perldoc\ -f
setlocal comments=:#
setlocal commentstring=#%s
" Change the browse dialog on Win32 to show mainly Perl-related files
if has("gui_win32")
let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
\ "Perl Modules (*.pm)\t*.pm\n" .
\ "Perl Documentation Files (*.pod)\t*.pod\n" .
\ "All Files (*.*)\t*.*\n"
endif
" Provided by Ned Konz <ned at bike-nomad dot com>
"---------------------------------------------
setlocal include=\\<\\(use\\\|require\\)\\>
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
setlocal define=[^A-Za-z_]
setlocal iskeyword+=:
" The following line changes a global variable but is necessary to make
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
" out the problem. If this causes a problem for you, add an
" after/ftplugin/perl.vim file that contains
" set isfname-=:
set isfname+=:
" Set this once, globally.
if !exists("perlpath")
if executable("perl")
try
if &shellxquote != '"'
let perlpath = system('perl -e "print join(q/,/,@INC)"')
else
let perlpath = system("perl -e 'print join(q/,/,@INC)'")
endif
let perlpath = substitute(perlpath,',.$',',,','')
catch /E145:/
let perlpath = ".,,"
endtry
else
" If we can't call perl to get its path, just default to using the
" current directory and the directory of the current file.
let perlpath = ".,,"
endif
endif
" Append perlpath to the existing path value, if it is set. Since we don't
" use += to do it because of the commas in perlpath, we have to handle the
" global / local settings, too.
if &l:path == ""
if &g:path == ""
let &l:path=perlpath
else
let &l:path=&g:path.",".perlpath
endif
else
let &l:path=&l:path.",".perlpath
endif
"---------------------------------------------
" Undo the stuff we changed.
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
\ " | unlet! b:browsefilter"
" proper matching for matchit plugin
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
" Restore the saved compatibility options.
let &cpo = s:save_cpo
unlet s:save_cpo

View File

@@ -0,0 +1,9 @@
setlocal tabstop=4
setlocal softtabstop=4
setlocal shiftwidth=4
" setlocal textwidth=80
setlocal smarttab
setlocal expandtab
" Highlight long lines
match ErrorMsg '\%>79v.\+'

View File

@@ -0,0 +1,67 @@
" Vim indent file
" Language: Ruby
" Maintainer: Gavin Sinclair <gsinclair@soyabean.com.au>
" Last Change: 2002/08/14
" URL: www.soyabean.com.au/gavin/vim/index.html
" Changes: (since vim 6.1)
" - indentation after a line ending in comma, etc, (even in a comment) was
" broken, now fixed (2002/08/14)
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetRubyIndent()
setlocal nolisp
setlocal nosmartindent
setlocal autoindent
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue
" Only define the function once.
if exists("*GetRubyIndent")
finish
endif
function GetRubyIndent()
" Find a non-blank line above the current line.
let lnum = prevnonblank(v:lnum - 1)
" At the start of the file use zero indent.
if lnum == 0
return 0
endif
" If the line trailed with [*+,.(] - but not in a comment - trust the user
if getline(lnum) =~ '\(\[^#\].*\)?\(\*\|\.\|+\|,\|(\)\(\s*#.*\)\=$'
return -1
endif
" Add a 'shiftwidth' after lines beginning with:
" module, class, dev, if, for, while, until, else, elsif, case, when, {
let ind = indent(lnum)
let flag = 0
if getline(lnum) =~ '^\s*\(module\>\|class\>\|def\>\|if\>\|for\>\|while\>\|until\>\|else\>\|elsif\>\|case\>\|when\>\|unless\|begin\|ensure\>\|rescue\>\)'
\ || getline(lnum) =~ '{\s*$'
\ || getline(lnum) =~ '\({\|\<do\>\).*|.*|\s*$'
\ || getline(lnum) =~ '\<do\>\(\s*#.*\)\=$'
let ind = ind + &sw
let flag = 1
endif
" Subtract a 'shiftwidth' after lines ending with
" "end" when they begin with while, if, for, until
if flag == 1 && getline(lnum) =~ '\<end\>\(\s*#.*\)\=$'
let ind = ind - &sw
endif
" Subtract a 'shiftwidth' on end, else and, elsif, when and }
if getline(v:lnum) =~ '^\s*\(end\>\|else\>\|elsif\>\|when\>\|ensure\>\|rescue\>\|}\)'
let ind = ind - &sw
endif
return ind
endfunction
" vim:sw=2

View File

@@ -0,0 +1,3 @@
let g:sql_type_default = 'mysql'
setlocal omnifunc=sqlcomplete#Complete

View File

@@ -0,0 +1,180 @@
" Disable annoying beep sound
set vb
" Set color scheme. Other good ones are bubblegum-256-dark, sorcerer, and zenburn
colorscheme xoria256
" ansible-vim: set indent to 0 after two newlines in insert-mode
let g:ansible_unindent_after_newline = 1
" ansible-vim settings
let g:ansible_attribute_highlight = "od"
let g:ansible_name_highlight = 'b'
let g:ansible_extra_keywords_highlight = 1
let g:ansible_normal_keywords_highlight = 'Constant'
let g:ansible_with_keywords_highlight = 'Constant'
" CtrlP Shortcuts
noremap <leader>b :CtrlPBuffer<CR>
noremap <leader>p :CtrlP<CR>
noremap <leader>P :CtrlPClearCache<CR>:CtrlP<CR>
noremap <c-b> :LeaderfBuffer<CR>
noremap <c-f> :LeaderfFile<CR>
" NERDTree Shortcuts
silent! map <F2> :NERDTreeToggle<CR>
silent! map <F3> :NERDTreeFind<CR>
" Switch buffers using F4
nnoremap <F4> :buffers<CR>:buffer<Space>
" Refresh vim config with F5
noremap <silent> <F5> :source ~/.vimrc<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR>
" Switch buffers using ctrl+left or ctrl+right
map <C-left> <ESC>:bp<CR>
map <C-right> <ESC>:bn<CR>
" Set keyboard shortcut for paste toggle.
set pastetoggle=<F10>
" Move between windows easily
noremap <leader><up> :wincmd k<CR>
noremap <leader><down> :wincmd j<CR>
noremap <leader><left> :wincmd h<CR>
noremap <leader><right> :wincmd l<CR>
noremap <leader>k :wincmd k<CR>
noremap <leader>j :wincmd j<CR>
noremap <leader>h :wincmd h<CR>
noremap <leader>l :wincmd l<CR>
" Map <Space> to / (search) and Ctrl-<Space> to ? (backwards search)
map <space> /
map <c-space> ?
" Clear search highlight with c-l
noremap <silent> <c-l> :nohls<cr><c-l>
" Fix tmux background color
if &term =~ '256color'
set t_ut=
endif
" Show line numbers
set number
" Enable filetype plugins
filetype plugin indent on
" Enable syntax highlighting
syntax on
" Turn backup off
set nobackup
set nowb
set noswapfile
" this turns off physical line wrapping (ie: automatic insertion of newlines)
set textwidth=0 wrapmargin=0
" Use spaces instead of tabs
set expandtab
" Be smart when using tabs
set smarttab
" 1 tab == 4 spaces
set shiftwidth=4
set tabstop=4
" Ignore case while searching
set ignorecase
" Highlight search results
set hlsearch
" Makes search act like search in modern browsers
set incsearch
" Set utf8 as standard encoding and en_US as the standard language
set encoding=utf8
" Use Unix as the standard file type
set ffs=unix,dos,mac
" Visual mode pressing * or # searches for the current selection
" Super useful! From an idea by Michael Naumann
vnoremap <silent> * :call VisualSelection('f')<CR>
vnoremap <silent> # :call VisualSelection('b')<CR>
" Return to the last edit position when opening files.
augroup vimrcEx
autocmd!
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
augroup END
" Ensure cursor is at the top of the file, if editing a git commit message:
au FileType gitcommit au! BufEnter COMMIT_EDITMSG call setpos('.', [0, 1, 1, 0])
" Remember info about open buffers on close
set viminfo^=%
" Returns true if paste mode is enabled
function! HasPaste()
if &paste
return 'PASTE MODE '
en
return ''
endfunction
" Always show the status line
set laststatus=2
" Format the status line
set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l
" in case you forgot to sudo
cnoremap w!! %!sudo tee > /dev/null %
" Set the cursorline
set cursorline
"hi cursorline gui=none
augroup CursorlineOnlyInActiveWindow
autocmd!
autocmd VimEnter,WinEnter,BufWinEnter * setlocal cursorline
autocmd WinLeave * setlocal nocursorline
augroup END
" Highlight trailing whitespace in red
match ErrorMsg /\s\+\%#\@<!$/
" Enable pathogen
execute pathogen#infect()
" Syntastic
let g:syntastic_python_checkers = ['flake8', 'pyflakes']
" Disable E501(over 79 chars), W191(tabs instead of space), W391(blank line at
" end of file
let g:syntastic_python_flake8_args='--ignore=E501'
" Enable checking of perl files.
let g:syntastic_perl_checkers = ['perl']
let g:syntastic_enable_perl_checker = 1
let g:syntastic_check_on_open=1
let g:syntastic_enable_signs=1
let g:syntastic_enable_highlighting=1
let g:syntastic_auto_loc_list=1
let g:syntastic_loc_list_height=5
let g:syntastic_mode_map = { 'mode': 'active',
\ 'active_filetypes': ['python', 'javascript', 'css', 'html'],
\ 'passive_filetypes': ['make','cpp','c'] }
" Jedi stuff
let g:jedi#use_tabs_not_buffers = 0

View File

@@ -0,0 +1,2 @@
setlocal omnifunc=xmlcomplete#CompleteTags
setlocal tabstop=4 softtabstop=4 shiftwidth=4

View File

@@ -0,0 +1,142 @@
" Vim color file
"
" Name: xoria256.vim
" Version: 1.5
" Maintainer: Dmitriy Y. Zotikov (xio) <xio@ungrund.org>
"
" Should work in recent 256 color terminals. 88-color terms like urxvt are
" NOT supported.
"
" Don't forget to install 'ncurses-term' and set TERM to xterm-256color or
" similar value.
"
" Color numbers (0-255) see:
" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
"
" For a specific filetype highlighting rules issue :syntax list when a file of
" that type is opened.
" Initialization {{{
if &t_Co != 256 && ! has("gui_running")
echomsg ""
echomsg "err: please use GUI or a 256-color terminal (so that t_Co=256 could be set)"
echomsg ""
finish
endif
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "xoria256"
"}}}
" Colours {{{1
"" General {{{2
hi Normal ctermfg=252 guifg=#d0d0d0 ctermbg=234 guibg=#1c1c1c cterm=none gui=none
hi Cursor ctermbg=214 guibg=#ffaf00
hi CursorColumn ctermbg=238 guibg=#444444
hi CursorLine ctermbg=237 guibg=#3a3a3a cterm=none gui=none
hi Error ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000
hi ErrorMsg ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000
hi FoldColumn ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
hi Folded ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87
hi IncSearch ctermfg=0 guifg=#000000 ctermbg=223 guibg=#ffdfaf cterm=none gui=none
hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
hi MatchParen ctermfg=188 guifg=#dfdfdf ctermbg=68 guibg=#5f87df cterm=bold gui=bold
" TODO
" hi MoreMsg
hi NonText ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212 cterm=bold gui=bold
hi Pmenu ctermfg=0 guifg=#000000 ctermbg=250 guibg=#bcbcbc
hi PmenuSel ctermfg=255 guifg=#eeeeee ctermbg=243 guibg=#767676
hi PmenuSbar ctermbg=252 guibg=#d0d0d0
hi PmenuThumb ctermfg=243 guifg=#767676
hi Search ctermfg=0 guifg=#000000 ctermbg=149 guibg=#afdf5f
hi SignColumn ctermfg=248 guifg=#a8a8a8
hi SpecialKey ctermfg=77 guifg=#5fdf5f
hi SpellBad ctermfg=160 guifg=fg ctermbg=bg cterm=underline guisp=#df0000
hi SpellCap ctermfg=189 guifg=#dfdfff ctermbg=bg guibg=bg cterm=underline gui=underline
hi SpellRare ctermfg=168 guifg=#df5f87 ctermbg=bg guibg=bg cterm=underline gui=underline
hi SpellLocal ctermfg=98 guifg=#875fdf ctermbg=bg guibg=bg cterm=underline gui=underline
hi StatusLine ctermfg=15 guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none
hi TabLine ctermfg=fg guifg=fg ctermbg=242 guibg=#666666 cterm=none gui=none
hi TabLineFill ctermfg=fg guifg=fg ctermbg=237 guibg=#3a3a3a cterm=none gui=none
" FIXME
hi Title ctermfg=225 guifg=#ffdfff
hi Todo ctermfg=0 guifg=#000000 ctermbg=184 guibg=#dfdf00
hi Underlined ctermfg=39 guifg=#00afff cterm=underline gui=underline
hi VertSplit ctermfg=237 guifg=#3a3a3a ctermbg=237 guibg=#3a3a3a cterm=none gui=none
" hi VIsualNOS ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff cterm=none gui=none
" hi Visual ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff
hi Visual ctermfg=255 guifg=#eeeeee ctermbg=96 guibg=#875f87
" hi Visual ctermfg=255 guifg=#eeeeee ctermbg=24 guibg=#005f87
hi VisualNOS ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87
hi WildMenu ctermfg=0 guifg=#000000 ctermbg=150 guibg=#afdf87 cterm=bold gui=bold
"" Syntax highlighting {{{2
hi Comment ctermfg=244 guifg=#808080
hi Constant ctermfg=229 guifg=#ffffaf
hi Identifier ctermfg=182 guifg=#dfafdf cterm=none
hi Ignore ctermfg=238 guifg=#444444
hi Number ctermfg=180 guifg=#dfaf87
hi PreProc ctermfg=150 guifg=#afdf87
hi Special ctermfg=174 guifg=#df8787
hi Statement ctermfg=110 guifg=#87afdf cterm=none gui=none
hi Type ctermfg=146 guifg=#afafdf cterm=none gui=none
"" Special {{{2
""" .diff {{{3
hi diffAdded ctermfg=150 guifg=#afdf87
hi diffRemoved ctermfg=174 guifg=#df8787
""" vimdiff {{{3
hi diffAdd ctermfg=bg guifg=bg ctermbg=151 guibg=#afdfaf
"hi diffDelete ctermfg=bg guifg=bg ctermbg=186 guibg=#dfdf87 cterm=none gui=none
hi diffDelete ctermfg=bg guifg=bg ctermbg=246 guibg=#949494 cterm=none gui=none
hi diffChange ctermfg=bg guifg=bg ctermbg=181 guibg=#dfafaf
hi diffText ctermfg=bg guifg=bg ctermbg=174 guibg=#df8787 cterm=none gui=none
""" HTML {{{3
" hi htmlTag ctermfg=146 guifg=#afafdf
" hi htmlEndTag ctermfg=146 guifg=#afafdf
hi htmlTag ctermfg=244
hi htmlEndTag ctermfg=244
hi htmlArg ctermfg=182 guifg=#dfafdf
hi htmlValue ctermfg=187 guifg=#dfdfaf
hi htmlTitle ctermfg=254 ctermbg=95
" hi htmlArg ctermfg=146
" hi htmlTagName ctermfg=146
" hi htmlString ctermfg=187
""" django {{{3
hi djangoVarBlock ctermfg=180
hi djangoTagBlock ctermfg=150
hi djangoStatement ctermfg=146
hi djangoFilter ctermfg=174
""" python {{{3
hi pythonExceptions ctermfg=174
""" NERDTree {{{3
hi Directory ctermfg=110 guifg=#87afdf
hi treeCWD ctermfg=180 guifg=#dfaf87
hi treeClosable ctermfg=174 guifg=#df8787
hi treeOpenable ctermfg=150 guifg=#afdf87
hi treePart ctermfg=244 guifg=#808080
hi treeDirSlash ctermfg=244 guifg=#808080
hi treeLink ctermfg=182 guifg=#dfafdf
""" VimDebug {{{3
" FIXME
" you may want to set SignColumn highlight in your .vimrc
" :help sign
" :help SignColumn
" hi currentLine term=reverse cterm=reverse gui=reverse
" hi breakPoint term=NONE cterm=NONE gui=NONE
" hi empty term=NONE cterm=NONE gui=NONE
" sign define currentLine linehl=currentLine
" sign define breakPoint linehl=breakPoint text=>>
" sign define both linehl=currentLine text=>>
" sign define empty linehl=empty

View File

@@ -0,0 +1,467 @@
" Vim color file
" Maintainer: Jani Nurminen <slinky@iki.fi>
" URL: http://kippura.org/zenburnpage/
" License: GNU GPL <http://www.gnu.org/licenses/gpl.html>
"
" Nothing too fancy, just some alien fruit salad to keep you in the zone.
" This syntax file was designed to be used with dark environments and
" low light situations. Of course, if it works during a daybright office, go
" ahead :)
"
" Owes heavily to other Vim color files! With special mentions
" to "BlackDust", "Camo" and "Desert".
"
" To install, copy to ~/.vim/colors directory.
"
" Alternatively, you can use Vimball installation:
" vim zenburn.vba
" :so %
" :q
"
" For details, see :help vimball
"
" After installation, use it with :colorscheme zenburn.
" See also :help syntax
"
" Credits:
" - Jani Nurminen - original Zenburn, maintainer
" - Steve Hall & Cream posse - higher-contrast Visual selection
" - Kurt Maier - 256 color console coloring, low and high contrast toggle,
" bug fixing
" - Charlie - spotted too bright StatusLine in non-high contrast mode
" - Pablo Castellazzi - CursorLine fix for 256 color mode
" - Tim Smith - force dark background
" - John Gabriele - spotted bad Ignore-group handling
" - Zac Thompson - spotted invisible NonText in low contrast mode
" - Christophe-Marie Duquesne - suggested making a Vimball,
" suggested support for ctags_highlighting.vim
" - Andrew Wagner - noted the CursorColumn bug (guifg was unintentionally set),
" unify CursorColumn colour
" - Martin Langasek - clarify the license, whitespace fixes
" - Marcin Szamotulski - support autocomplete for Zenburn configuration
" parameters
" - Clayton Parker (claytron) - Convinced by Kurt Maier to use Zenburn. Point
" out issues with LineNr, fix directory styles, and their usage in MacVim.
" - Paweł Piekarski - Spotted bad FoldColumn and TabLine. Made better
" FoldColumn colors, fixed TabLine colors.
" - Jim - Fix for missing Include group for terminal
" - Peter (Sakartu) - ColorColumn fixes
" - Please see git log for the others not listed here
"
" CONFIGURABLE PARAMETERS:
"
" You can use the default (don't set any parameters), or you can
" set some parameters to tweak the Zenburn colours.
"
" To use them, put them into your .vimrc file before loading the color scheme,
" example:
" let g:zenburn_high_Contrast=1
" colors zenburn
"
" You can also do ":let g:zenburn" then hit Ctrl-d or Tab to scroll through the
" list of configurable parameters.
"
" * You can now set a darker background for bright environments. To activate, use:
" let g:zenburn_high_Contrast = 1
"
" * For transparent terminals set the background to black with:
" let g:zenburn_transparent = 1
"
" * For example, Vim help files uses the Ignore-group for the pipes in tags
" like "|somelink.txt|". By default, the pipes are not visible, as they
" map to Ignore group. If you wish to enable coloring of the Ignore group,
" set the following parameter to 1. Warning, it might make some syntax files
" look strange.
"
" let g:zenburn_color_also_Ignore = 1
"
" * To get more contrast to the Visual selection, use
"
" let g:zenburn_alternate_Visual = 1
"
" Note: this is enabled only if the old-style Visual
" if used, see g:zenburn_old_Visual
"
" * To use alternate colouring for Error message, use
"
" let g:zenburn_alternate_Error = 1
"
" * The new default for Include is a duller orange. To use the original
" colouring for Include, use
"
" let g:zenburn_alternate_Include = 1
"
" * To disable underlining for Labels, use
"
" let g:zenburn_disable_Label_underline = 1
"
" * Work-around to a Vim bug, it seems to misinterpret ctermfg and 234 and 237
" as light values, and sets background to light for some people. If you have
" this problem, use:
"
" let g:zenburn_force_dark_Background = 1
"
" * By default the CursorColumn is of a lighter colour. I find it more readable
" that way, but some people may want to align it with the darker CursorLine
" color, for visual uniformity. To do so, use:
"
" let g:zenburn_unified_CursorColumn = 1
"
" Note: you can ignore this unless you use
" ":set cursorline cursorcolumn", since otherwise the effect won't be
" seen.
"
" * New (dark) Visual coloring has been introduced.
" The dark Visual is more aligned with the rest of the colour scheme,
" especially if you use line numbers. If you wish to use the
" old Visual coloring, use
"
" let g:zenburn_old_Visual = 1
"
" Default is to use the new Visual.
"
" * EXPERIMENTAL FEATURE: Zenburn would like to support TagHighlight
" (an evolved ctags-highlighter) by Al Budden (homepage:
" http://www.cgtk.co.uk/vim-scripts/taghighlight).
" Current support status is broken: there is no automatic detection of
" TagHighlight, no specific language support; however there is some basic
" support for Python. If you are a user of TagHighlight and want to help,
" please enable:
"
" let g:zenburn_enable_TagHighlight=1
"
" and improve the corresponding block at the end of the file.
"
" NOTE:
"
" * To turn the parameter(s) back to defaults, use UNLET or set them to 0:
"
" unlet g:zenburn_alternate_Include
" or
" let g:zenburn_alternate_Include = 0
"
"
" That's it, enjoy!
"
" TODO
" - Visual alternate color is broken? Try GVim >= 7.0.66 if you have trouble
" - IME colouring (CursorIM)
" Finish if we are in a term lacking 256 color support
if ! has("gui_running") && &t_Co <= 255
finish
endif
" Set defaults, but keep any parameters already set by the user
if ! exists("g:zenburn_high_Contrast")
let g:zenburn_high_Contrast = 0
endif
if ! exists("g:zenburn_transparent")
let g:zenburn_transparent = 0
endif
if ! exists("g:zenburn_color_also_Ignore")
let g:zenburn_color_also_Ignore = 0
endif
if ! exists("g:zenburn_alternate_Error")
let g:zenburn_alternate_Error = 0
endif
if ! exists("g:zenburn_force_dark_Background")
let g:zenburn_force_dark_Background = 0
endif
if ! exists("g:zenburn_alternate_Visual")
let g:zenburn_alternate_Visual = 0
endif
if ! exists("g:zenburn_alternate_Include")
let g:zenburn_alternate_Include = 0
endif
if ! exists("g:zenburn_disable_Label_underline")
let g:zenburn_disable_Label_underline = 0
endif
if ! exists("g:zenburn_unified_CursorColumn")
let g:zenburn_unified_CursorColumn = 0
endif
if ! exists("g:zenburn_old_Visual")
let g:zenburn_old_Visual = 0
endif
if ! exists("g:zenburn_enable_TagHighlight")
let g:zenburn_enable_TagHighlight = 0
endif
" -----------------------------------------------
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name="zenburn"
hi Boolean guifg=#dca3a3 ctermfg=181
hi Character guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold
hi Comment guifg=#7f9f7f gui=italic ctermfg=108
hi Conditional guifg=#f0dfaf gui=bold ctermfg=223 cterm=bold
hi Constant guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold
hi Cursor guifg=#000d18 guibg=#8faf9f gui=bold ctermfg=233 ctermbg=109 cterm=bold
hi Debug guifg=#bca3a3 gui=bold ctermfg=181 cterm=bold
hi Define guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
hi Delimiter guifg=#8f8f8f ctermfg=245
hi DiffAdd guifg=#709080 guibg=#313c36 gui=bold ctermfg=66 ctermbg=237 cterm=bold
hi DiffChange guibg=#333333 ctermbg=236
hi DiffDelete guifg=#333333 guibg=#464646 ctermfg=236 ctermbg=238
hi DiffText guifg=#ecbcbc guibg=#41363c gui=bold ctermfg=217 ctermbg=237 cterm=bold
hi Directory guifg=#9fafaf gui=bold ctermfg=109 cterm=bold
hi ErrorMsg guifg=#80d4aa guibg=#2f2f2f gui=bold ctermfg=115 ctermbg=236 cterm=bold
hi Exception guifg=#c3bf9f gui=bold ctermfg=249 cterm=bold
hi Float guifg=#c0bed1 ctermfg=251
hi FoldColumn guifg=#93b3a3 guibg=#3f4040
hi Folded guifg=#93b3a3 guibg=#3f4040
hi Function guifg=#efef8f ctermfg=228
hi Identifier guifg=#efdcbc ctermfg=223 cterm=none
hi IncSearch guifg=#f8f893 guibg=#385f38 ctermfg=228 ctermbg=23
hi Keyword guifg=#f0dfaf gui=bold ctermfg=223 cterm=bold
hi Macro guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
hi ModeMsg guifg=#ffcfaf gui=none ctermfg=223 cterm=none
hi MoreMsg guifg=#ffffff gui=bold ctermfg=231 cterm=bold
hi Number guifg=#8cd0d3 ctermfg=116
hi Operator guifg=#f0efd0 ctermfg=230
hi PmenuSbar guibg=#2e3330 guifg=#000000 ctermfg=16 ctermbg=236
hi PmenuThumb guibg=#a0afa0 guifg=#040404 ctermfg=232 ctermbg=151
hi PreCondit guifg=#dfaf8f gui=bold ctermfg=180 cterm=bold
hi PreProc guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
hi Question guifg=#ffffff gui=bold ctermfg=231 cterm=bold
hi Repeat guifg=#ffd7a7 gui=bold ctermfg=223 cterm=bold
hi Search guifg=#ffffe0 guibg=#284f28 ctermfg=230 ctermbg=22
hi SignColumn guifg=#9fafaf gui=bold ctermfg=109 cterm=bold
hi SpecialChar guifg=#dca3a3 gui=bold ctermfg=181 cterm=bold
hi SpecialComment guifg=#82a282 gui=bold ctermfg=108 cterm=bold
hi Special guifg=#cfbfaf ctermfg=181
hi SpecialKey guifg=#9ece9e ctermfg=151
hi Statement guifg=#e3ceab gui=none ctermfg=187 cterm=none
hi StatusLine guifg=#313633 guibg=#ccdc90 ctermfg=236 ctermbg=186
hi StatusLineNC guifg=#2e3330 guibg=#88b090 ctermfg=235 ctermbg=108
hi StorageClass guifg=#c3bf9f gui=bold ctermfg=249 cterm=bold
hi String guifg=#cc9393 ctermfg=174
hi Structure guifg=#efefaf gui=bold ctermfg=229 cterm=bold
hi Tag guifg=#e89393 gui=bold ctermfg=181 cterm=bold
hi Title guifg=#efefef gui=bold ctermfg=255 ctermbg=NONE cterm=bold
hi Todo guifg=#dfdfdf guibg=NONE gui=bold ctermfg=254 ctermbg=NONE cterm=bold
hi Typedef guifg=#dfe4cf gui=bold ctermfg=253 cterm=bold
hi Type guifg=#dfdfbf gui=bold ctermfg=187 cterm=bold
hi Underlined guifg=#dcdccc gui=underline ctermfg=188 cterm=underline
hi VertSplit guifg=#2e3330 guibg=#688060 ctermfg=236 ctermbg=65
hi VisualNOS guifg=#333333 guibg=#f18c96 gui=bold,underline ctermfg=236 ctermbg=210 cterm=bold
hi WarningMsg guifg=#ffffff guibg=#333333 gui=bold ctermfg=231 ctermbg=236 cterm=bold
hi WildMenu guifg=#cbecd0 guibg=#2c302d gui=underline ctermfg=194 ctermbg=236 cterm=underline
" spellchecking, always "bright" term background
hi SpellBad guisp=#bc6c4c guifg=#dc8c6c ctermfg=209 ctermbg=237
hi SpellCap guisp=#6c6c9c guifg=#8c8cbc ctermfg=103 ctermbg=237
hi SpellRare guisp=#bc6c9c guifg=#bc8cbc ctermfg=139 ctermbg=237
hi SpellLocal guisp=#7cac7c guifg=#9ccc9c ctermfg=151 ctermbg=237
if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
" use new darker background
hi Normal guifg=#dcdccc guibg=#1f1f1f ctermfg=188 ctermbg=234
hi ColorColumn guibg=#33332f ctermbg=235
hi CursorLine guibg=#121212 gui=bold ctermbg=233 cterm=none
hi CursorLineNr guifg=#f2f3bb guibg=#161616 ctermfg=229 ctermbg=233
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
hi CursorColumn guibg=#121212 gui=bold ctermbg=233 cterm=none
else
hi CursorColumn guibg=#2b2b2b ctermbg=235 cterm=none
endif
hi FoldColumn guibg=#161616 ctermbg=233 ctermfg=109
hi Folded guibg=#161616 ctermbg=233 ctermfg=109
hi LineNr guifg=#9fafaf guibg=#161616 ctermfg=248 ctermbg=233
hi NonText guifg=#404040 gui=bold ctermfg=238
hi Pmenu guibg=#242424 guifg=#ccccbc ctermfg=251 ctermbg=235
hi PmenuSel guibg=#353a37 guifg=#ccdc90 gui=bold ctermfg=187 ctermbg=236 cterm=bold
hi MatchParen guifg=#f0f0c0 guibg=#383838 gui=bold ctermfg=229 ctermbg=237 cterm=bold
hi SignColumn guibg=#181818 ctermbg=233
hi SpecialKey guibg=#242424
hi TabLine guifg=#88b090 guibg=#313633 gui=none ctermbg=236 ctermfg=108 cterm=none
hi TabLineSel guifg=#ccd990 guibg=#222222 ctermbg=235 ctermfg=186 cterm=bold
hi TabLineFill guifg=#88b090 guibg=#313633 gui=none ctermbg=236 ctermfg=108 cterm=none
else
" Original, lighter background
hi Normal guifg=#dcdccc guibg=#3f3f3f ctermfg=188 ctermbg=237
hi ColorColumn guibg=#484848 ctermbg=238
hi CursorLine guibg=#434443 ctermbg=238 cterm=none
hi CursorLineNr guifg=#d2d39b guibg=#262626 ctermfg=230 ctermbg=235
if exists("g:zenburn_unified_CursorColumn") && g:zenburn_unified_CursorColumn
hi CursorColumn guibg=#434343 ctermbg=238 cterm=none
else
hi CursorColumn guibg=#4f4f4f ctermbg=239 cterm=none
endif
hi FoldColumn guibg=#333333 ctermbg=236 ctermfg=109
hi Folded guibg=#333333 ctermbg=236 ctermfg=109
hi LineNr guifg=#9fafaf guibg=#262626 ctermfg=248 ctermbg=235
hi NonText guifg=#5b605e gui=bold ctermfg=240
hi Pmenu guibg=#2c2e2e guifg=#9f9f9f ctermfg=248 ctermbg=235
hi PmenuSel guibg=#242424 guifg=#d0d0a0 gui=bold ctermfg=187 ctermbg=235 cterm=bold
hi MatchParen guifg=#b2b2a0 guibg=#2e2e2e gui=bold ctermfg=145 ctermbg=236 cterm=bold
hi SignColumn guibg=#343434 ctermbg=236
hi SpecialKey guibg=#444444
hi TabLine guifg=#d0d0b8 guibg=#222222 gui=none ctermbg=235 ctermfg=187 cterm=none
hi TabLineSel guifg=#f0f0b0 guibg=#333333 gui=bold ctermbg=236 ctermfg=229 cterm=bold
hi TabLineFill guifg=#dccdcc guibg=#101010 gui=none ctermbg=233 ctermfg=188 cterm=none
hi StatusLine ctermbg=144
endif
if exists("g:zenburn_force_dark_Background") && g:zenburn_force_dark_Background
" Force dark background, because of a bug in VIM: VIM sets background
" automatically during "hi Normal ctermfg=X"; it misinterprets the high
" value (234 or 237 above) as a light color, and wrongly sets background to
" light. See ":help highlight" for details.
set background=dark
endif
if exists("g:zenburn_transparent") && g:zenburn_transparent
hi Normal ctermbg=0 guibg=#000000
hi Statement ctermbg=NONE
hi Title ctermbg=NONE
hi Todo ctermbg=NONE
hi Underlined ctermbg=NONE
hi DiffAdd ctermbg=NONE
hi DiffText ctermbg=NONE
hi ErrorMsg ctermbg=NONE
hi LineNr ctermbg=NONE
endif
if exists("g:zenburn_old_Visual") && g:zenburn_old_Visual
if exists("g:zenburn_alternate_Visual") && g:zenburn_alternate_Visual
" Visual with more contrast, thanks to Steve Hall & Cream posse
" gui=none fixes weird highlight problem in at least GVim 7.0.66, thanks to Kurt Maier
hi Visual guifg=#000000 guibg=#71d3b4 gui=none ctermfg=16 ctermbg=79 cterm=none
hi VisualNOS guifg=#000000 guibg=#71d3b4 gui=none ctermfg=16 ctermbg=79 cterm=none
else
" use default visual
hi Visual guifg=#233323 guibg=#71d3b4 gui=none ctermfg=235 ctermbg=79 cterm=none
hi VisualNOS guifg=#233323 guibg=#71d3b4 gui=none ctermfg=235 ctermbg=79 cterm=none
endif
else
" new Visual style
if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
" high contrast
"hi Visual guibg=#304a3d
"hi VisualNos guibg=#304a3d
"TODO no nice greenish in console, 65 is closest. use full black instead,
"although i like the green..!
hi Visual guibg=#0f0f0f ctermbg=232
hi VisualNOS guibg=#0f0f0f ctermbg=232
if exists("g:zenburn_transparent") && g:zenburn_transparent
hi Visual ctermbg=235
endif
else
" low contrast
hi Visual guibg=#2f2f2f ctermbg=235
hi VisualNOS guibg=#2f2f2f ctermbg=235
endif
endif
if exists("g:zenburn_alternate_Error") && g:zenburn_alternate_Error
" use more jumpy Error
hi Error guifg=#e37170 guibg=#664040 gui=bold ctermfg=210 ctermbg=52 cterm=bold
else
" default is something more zenburn-compatible
hi Error guifg=#e37170 guibg=#3d3535 gui=bold ctermfg=167 ctermbg=236 cterm=bold
endif
if exists("g:zenburn_alternate_Include") && g:zenburn_alternate_Include
" original setting
hi Include guifg=#ffcfaf gui=bold ctermfg=223 cterm=bold
else
" new, less contrasted one
hi Include guifg=#dfaf8f gui=bold ctermfg=180 cterm=bold
endif
if exists("g:zenburn_disable_Label_underline") && g:zenburn_disable_Label_underline
hi Label guifg=#dfcfaf ctermfg=187
else
hi Label guifg=#dfcfaf gui=underline ctermfg=187 cterm=underline
endif
if exists("g:zenburn_color_also_Ignore") && g:zenburn_color_also_Ignore
" color the Ignore groups
" note: if you get strange coloring for your files, turn this off (unlet)
if exists("g:zenburn_high_Contrast") && g:zenburn_high_Contrast
hi Ignore ctermfg=238
else
hi Ignore guifg=#545a4f ctermfg=240
endif
endif
" EXPERIMENTAL TagHighlight support
" link/set sensible defaults here;
"
" For now I mostly link to subset of Zenburn colors, the linkage is based
" on appearance, not semantics. In later versions I might define more new colours.
"
" HELP NEEDED to make this work properly.
if exists("g:zenburn_enable_TagHighlight") && g:zenburn_enable_TagHighlight
" CTag support may vary, but the first step is to start using it so
" we can fix it!
"
" Consult /plugin/TagHighlight/data/kinds.txt for info on your
" language and what's been defined.
"
" There is potential for language indepedent features here. (Acutally,
" seems it may be required for this to be useful...) This way we can
" implement features depending on how well CTags are currently implemented
" for the language. ie. Global problem for python is annoying. Special
" colors are defined for special language features, etc..
"
" For now all I care about is python supported features:
" c:CTagsClass
" f:CTagsFunction
" i:CTagsImport
" m:CTagsMember
" v:CTagsGlobalVariable
"
" Note: TagHighlight defaults to setting new tags to Keyword
" highlighting.
" TODO conditionally run each section
" BEGIN Python Section
hi link Class Function
hi link Import PythonInclude
hi link Member Function
"Note: Function is already defined
" Highlighter seems to think a lot of things are global variables even
" though they're not. Example: python method-local variable is
" coloured as a global variable. They should not be global, since
" they're not visible outside the method.
" If this is some very bright colour group then things look bad.
" hi link GlobalVariable Identifier
" Because of this problem I am disabling the feature by setting it to
" Normal instead
hi link GlobalVariable Normal
" END Python Section
" Starting point for other languages.
hi link GlobalConstant Constant
hi link EnumerationValue Float
hi link EnumerationName Identifier
hi link DefinedName WarningMsg
hi link LocalVariable WarningMsg
hi link Structure WarningMsg
hi link Union WarningMsg
endif
" TODO check for more obscure syntax groups that they're ok

View File

@@ -0,0 +1,75 @@
# Command aliases
alias ..='cd ..'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias back='cd $OLDPWD'
alias c='clear'
alias cd..='cd ..'
alias cp='cp -iv'
alias chmod="chmod -c"
alias chown="chown -c"
alias df='df -h -x squashfs -x tmpfs -x devtmpfs'
alias e="vim -O "
alias E="vim -o "
alias egrep='egrep --colour=auto'
alias extip='curl icanhazip.com'
alias grep='grep --color=auto'
alias l.='ls -lhFa --time-style=long-iso --color=auto'
alias ll='ls'
alias ln='ln -iv'
alias ls=' ls -lhF --color=auto --human-readable --time-style=long-iso --classify'
alias lsmount='mount |column -t'
alias mkdir='mkdir -pv'
alias mv='mv -iv'
alias ports='netstat -tulanp'
alias h='history -i 1'
alias history='history 1'
alias j='jobs -l'
alias rm='rm -iv'
alias rmdir='rmdir -v'
alias speedtest='curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -'
alias ssha='eval $(ssh-agent) && ssh-add'
alias svim='sudo vim'
alias tn='tmux new -s'
alias watch='watch -d'
alias weather='curl wttr.in'
alias wget='wget -c'
if command -v colordiff > /dev/null 2>&1; then
alias diff="colordiff -Nuar"
else
alias diff="diff -Nuar"
fi
## get top process eating memory
alias mem5='ps auxf | sort -nr -k 4 | head -5'
alias mem10='ps auxf | sort -nr -k 4 | head -10'
## get top process eating cpu ##
alias cpu5='ps auxf | sort -nr -k 3 | head -5'
alias cpu10='ps auxf | sort -nr -k 3 | head -10'
## list largest directories (aka "ducks")
alias dir5='du -cksh * | sort -hr | head -n 5'
alias dir10='du -cksh * | sort -hr | head -n 10'
# Safetynets
# do not delete / or prompt if deleting more than 3 files at a time #
alias rm='rm -I --preserve-root'
# Parenting changing perms on / #
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'
# Package management
if [ -f /usr/bin/apt ]; then
alias update='sudo apt update'
alias upgrade='sudo apt update && sudo apt dist-upgrade && sudo apt autoremove && sudo apt clean'
alias install='sudo apt install'
fi
if [ -f /usr/bin/pacman ]; then
alias update='sudo pacman -Syyy'
alias upgrade='sudo pacman -Syu'
alias install='sudo pacman -S'
fi

View File

@@ -0,0 +1,33 @@
# Set bindkey to emacs mode
bindkey -e
# Restore history searching with ^r
bindkey '^r' history-incremental-search-backward
# Use alt and arrow keys for moving directories
cdUndoKey() {
popd > /dev/null
zle reset-prompt
echo
ls
echo
}
cdParentKey() {
pushd .. > /dev/null
zle reset-prompt
echo
ls
echo
}
zle -N cdParentKey
zle -N cdUndoKey
bindkey '^[[1;3A' cdParentKey
bindkey '^[[1;3D' cdUndoKey
# Control-x-e to open current line in $EDITOR, awesome when writting functions or editing multiline commands.
autoload -U edit-command-line
zle -N edit-command-line
bindkey '^x^e' edit-command-line

View File

@@ -0,0 +1,54 @@
autoload -U compinit && compinit
zmodload -i zsh/complist
# man zshcontrib
zstyle ':vcs_info:*' actionformats '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
zstyle ':vcs_info:*' formats '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
zstyle ':vcs_info:*' enable git #svn cvs
# Enable completion caching, use rehash to clear
zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path ~/.zsh/cache/$HOST
# Make directories blue when autocompleting
zstyle ':completion:*' list-colors 'di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
# Make the list prompt friendly
zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s'
# Make the selection prompt friendly when there are a lot of choices
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
# Add simple colors to kill
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
# list of completers to use
zstyle ':completion:*::::' completer _expand _complete _ignored _approximate
# Use menu, also llows you to use arrow keys
zstyle ':completion:*' menu select=2 _complete _ignored _approximate
# insert all expansions for expand completer
zstyle ':completion:*:expand:*' tag-order all-expansions
# match uppercase from lowercase
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
# offer indexes before parameters in subscripts
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
# formatting and messages
zstyle ':completion:*' verbose yes
zstyle ':completion:*:descriptions' format '%B%d%b'
zstyle ':completion:*:messages' format '%d'
zstyle ':completion:*:warnings' format 'No matches for: %d'
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
zstyle ':completion:*' group-name ''
# ignore completion functions (until the _ignored completer)
zstyle ':completion:*:functions' ignored-patterns '_*'
zstyle ':completion:*:scp:*' tag-order files users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *'
zstyle ':completion:*:scp:*' group-order files all-files users hosts-domain hosts-host hosts-ipaddr
zstyle ':completion:*:ssh:*' tag-order users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *'
zstyle ':completion:*:ssh:*' group-order hosts-domain hosts-host users hosts-ipaddr
zstyle '*' single-ignored show

View File

@@ -0,0 +1,8 @@
export TERM=xterm-256color
export EDITOR="/usr/bin/vim"
export GREP_COLOR='3;33'
# Not all servers have terminfo for rxvt-256color. :<
#if [ "${TERM}" = 'rxvt-256color' ] && ! [ -f '/usr/share/terminfo/r/rxvt-256color' ] && ! [ -f '/lib/terminfo/r/rxvt-256color' ] && ! [ -f "${HOME}/.terminfo/r/rxvt-256color" ]; #then
# export TERM='rxvt-unicode'
#fi

View File

@@ -0,0 +1,157 @@
# Easily extract archives
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjvf $1 ;;
*.tar.gz) tar xzvf $1 ;;
*.tar.xz) tar xvf $1 ;;
*.bz2) bzip2 -d $1 ;;
*.rar) unrar2dir $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip2dir $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*.ace) unace x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
run_under_tmux() {
# Run $1 under session or attach if such session already exist.
# $2 is optional path, if no specified, will use $1 from $PATH.
# If you need to pass extra variables, use $2 for it as in example below..
# Example usage:
# torrent() { run_under_tmux 'rtorrent' '/usr/local/rtorrent-git/bin/rtorrent'; }
# mutt() { run_under_tmux 'mutt'; }
# irc() { run_under_tmux 'irssi' "TERM='screen' command irssi"; }
# There is a bug in linux's libevent...
# export EVENT_NOEPOLL=1
command -v tmux >/dev/null 2>&1 || return 1
if [ -z "$1" ]; then return 1; fi
local name="$1"
if [ -n "$2" ]; then
local execute="$2"
else
local execute="command ${name}"
fi
if tmux has-session -t "${name}" 2>/dev/null; then
tmux attach -d -t "${name}"
else
tmux new-session -s "${name}" "${execute}" \; set-option status \; set set-titles-string "${name} (tmux@${HOST})"
fi
}
reload () {
exec "${SHELL}" "$@"
}
confirm() {
local answer
echo -ne "zsh: sure you want to run '${YELLOW}$*${NC}' [yN]? "
read -q answer
echo
if [[ "${answer}" =~ ^[Yy]$ ]]; then
command "${@}"
else
return 1
fi
}
confirm_wrapper() {
if [ "$1" = '--root' ]; then
local as_root='true'
shift
fi
local prefix=''
if [ "${as_root}" = 'true' ] && [ "${USER}" != 'root' ]; then
prefix="sudo"
fi
confirm ${prefix} "$@"
}
poweroff() { confirm_wrapper --root $0 "$@"; }
reboot() { confirm_wrapper --root $0 "$@"; }
hibernate() { confirm_wrapper --root $0 "$@"; }
startx() {
exec =startx
}
begin_with() {
local string="${1}"
shift
local element=''
for element in "$@"; do
if [[ "${string}" =~ "^${element}" ]]; then
return 0
fi
done
return 1
}
termtitle() {
case "$TERM" in
rxvt*|xterm*|nxterm|gnome|screen|screen-*)
local prompt_host="${(%):-%m}"
local prompt_user="${(%):-%n}"
local prompt_char="${(%):-%~}"
case "$1" in
precmd)
printf '\e]0;%s@%s: %s\a' "${prompt_user}" "${prompt_host}" "${prompt_char}"
;;
preexec)
printf '\e]0;%s [%s@%s: %s]\a' "$2" "${prompt_user}" "${prompt_host}" "${prompt_char}"
;;
esac
;;
esac
}
dot_progress() {
# Fancy progress function from Landley's Aboriginal Linux.
# Useful for long rm, tar and such.
# Usage:
# rm -rfv /foo | dot_progress
local i='0'
local line=''
while read line; do
i="$((i+1))"
if [ "${i}" = '25' ]; then
printf '.'
i='0'
fi
done
printf '\n'
}
# Fix backgrounding of GUI apps
precmd_disown() {
emulate -L zsh
setopt extendedglob
local job match mbegin mend
jobs | while read job; do
if [[ $job = \[(#b)([[:digit:]]##)\]*running* ]]; then
disown %$match[1]
fi
done
}
autoload -U add-zsh-hook
add-zsh-hook precmd precmd_disown

View File

@@ -0,0 +1,38 @@
# Set history file
HISTFILE=~/.zhistory
# Set history size
HISTSIZE=1000
# Set the number of lines in $HISTFILE
SAVEHIST="${HISTSIZE}"
# Enable history search with up and down arrows
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
[[ -n "$key[Up]" ]] && bindkey -- "$key[Up]" up-line-or-beginning-search
[[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search
# All terminal sessions append to the history file immediately as commands are entered
setopt inc_append_history
# save timestamp of command and duration
setopt extended_history
# when trimming history, lose oldest duplicates first
setopt hist_expire_dups_first
# When a duplicate command is entered, remove the oldest duplicate
setopt hist_ignore_all_dups
# remove command line from history list when first character on the line is a space
setopt hist_ignore_space
# Remove extra blanks from each command line being added to history
setopt hist_reduce_blanks
# Reads the history file every time history is called
# This means that the history command will show recent entries, even between terminal sessions
setopt share_history

View File

@@ -0,0 +1 @@
path+=/home/bzoicas/.local/bin

View File

@@ -0,0 +1,2 @@
# Load plugins
plugins=(git)

View File

@@ -0,0 +1,3 @@
# Set the prompt
newline=$'\n'
prompt='%F{35}%* [%j]${git_prompt} [%m:%F{75}%f%F{69}%c%f%F{35}] %#%f ${newline}🦄 '

View File

@@ -0,0 +1,38 @@
# Don't beep on error
setopt no_beep
# Allow comments even in interactive shells (especially for Muness)
setopt interactive_comments
# If you type foo, and it isn't a command, and it is a directory in your cdpath, go there
setopt auto_cd
# don't push multiple copies of the same directory onto the directory stack
setopt pushd_ignore_dups
# When completing from the middle of a word, move the cursor to the end of the word
setopt always_to_end
# show completion menu on successive tab press. needs unsetop menu_complete to work
setopt auto_menu
# any parameter that is set to the absolute name of a directory immediately becomes a name for that directory
setopt auto_name_dirs
# Allow completion from within a word/phrase
setopt complete_in_word
# do not autoselect the first completion entry
unsetopt menu_complete
# spelling correction for commands
setopt correct
# Stop annoying error when using asterisk in shell commands (i.e. scp server:*.txt .)
setopt nonomatch
# extended globbing, awesome!
setopt extendedGlob
# Turn on command substitution in the prompt (and parameter expansion and arithmetic expansion).
setopt promptsubst

View File

@@ -0,0 +1,14 @@
# Colors.
red='\e[0;31m'
RED='\e[1;31m'
green='\e[0;32m'
GREEN='\e[1;32m'
yellow='\e[0;33m'
YELLOW='\e[1;33m'
blue='\e[0;34m'
BLUE='\e[1;34m'
purple='\e[0;35m'
PURPLE='\e[1;35m'
cyan='\e[0;36m'
CYAN='\e[1;36m'
NC='\e[0m'

View File

@@ -0,0 +1,11 @@
source ~/.zsh/aliases.zsh
source ~/.zsh/bindkey.zsh
source ~/.zsh/completion.zsh
source ~/.zsh/exports.zsh
source ~/.zsh/functions.zsh
source ~/.zsh/history.zsh
source ~/.zsh/path.zsh
source ~/.zsh/plugins.zsh
source ~/.zsh/prompt.zsh
source ~/.zsh/setopt.zsh
source ~/.zsh/theming.zsh

View File

@@ -0,0 +1,3 @@
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

View File

@@ -0,0 +1,108 @@
# Current PS1:
tty -s && export PS1="[\[$(tput sgr0)\]\[\033[38;5;1m\]\u\[$(tput sgr0)\]\[\033[38;5;15m\]@\h:\W]\\$ \[$(tput sgr0)\]"
# Env
export TERM=xterm-256color
export EDITOR=vim
# Don't add duplicate lines or lines beginning with a space to the history
HISTCONTROL=ignoreboth
# Set history format to include timestamps
HISTTIMEFORMAT="%Y-%m-%d %T "
# Command aliases
alias ..='cd ..'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias back='cd $OLDPWD'
alias c='clear'
alias cd..='cd ..'
alias diff='colordiff'
alias e="vim -O "
alias E="vim -o "
alias extip='curl icanhazip.com'
alias grep='grep --color=auto'
alias l.='ls -lhFa --time-style=long-iso --color=auto'
alias ll='ls'
alias ls='ls -lhF --time-style=long-iso --color=auto'
alias lsmount='mount |column -t'
alias mkdir='mkdir -pv'
alias ports='netstat -tulanp'
alias h='history'
alias j='jobs -l'
alias speedtest='curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -'
alias ssha='eval $(ssh-agent) && ssh-add'
alias svim='sudo vim'
alias tn='tmux new -s'
alias wget='wget -c'
## get top process eating memory
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
## get top process eating cpu ##
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
# Safetynets
# do not delete / or prompt if deleting more than 3 files at a time #
alias rm='rm -I --preserve-root'
# confirmation #
alias mv='mv -i'
alias cp='cp -i'
alias ln='ln -i'
# Parenting changing perms on / #
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'
# reload bash config
alias reload="source ~/.bashrc"
# package management
alias update='sudo apt-get update'
alias upgrade='sudo apt-get update && sudo apt-get dist-upgrade'
alias install='sudo apt-get install'
## Functions
# Make a directory, then go there
md() {
test -n "$1" || return
mkdir -p "$1" && cd "$1"
}
# "path" shows current path, one element per line.
# If an argument is supplied, grep for it.
path() {
test -n "$1" && {
echo $PATH | perl -p -e "s/:/\n/g;" | grep -i "$1"
} || {
echo $PATH | perl -p -e "s/:/\n/g;"
}
}
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjvf $1 ;;
*.tar.gz) tar xzvf $1 ;;
*.bz2) bzip2 -d $1 ;;
*.rar) unrar2dir $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip2dir $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*.ace) unace x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}

View File

@@ -0,0 +1,3 @@
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi

View File

@@ -0,0 +1,113 @@
# Initial setup
set -g default-terminal xterm-256color
set -g status-keys vi
# Set fish as the default shell
#set-option -g default-shell "/usr/bin/fish"
# use C-j and C-f for the prefix.
set-option -g prefix C-j
set-option -g prefix2 C-f
unbind-key C-j
bind-key C-j send-prefix
set -g base-index 1
# Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded."
# Easy clear history
bind-key L clear-history
# Double press <prefix> to move to last window
bind-key C-f last-window
bind-key C-j last-window
# Lengthen the amount of time status messages are displayed
set-option -g display-time 2000
set-option -g display-panes-time 3000
# Set the base-index to 1 rather than 0
set -g base-index 1
set-window-option -g pane-base-index 1
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
# Key bindings for copy-paste
setw -g mode-keys vi
unbind p
bind p paste-buffer
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Allow the arrow key to be used immediately after changing windows.
set-option -g repeat-time 0
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# Synchronize panes
bind-key y set-window-option synchronize-panes
# No delay for escape key press
set -sg escape-time 0
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Mouse Mode
set -g mouse on
# Theme
set -g window-status-current-style bold,bg=colour247,fg=colour237
set -g window-status-activity-style bg=blue,fg=black
set-option -g message-style bg=colour237,fg=colour231
set-option -g pane-border-style fg=colour247
set-option -g pane-active-border-style fg=colour247
# Status Bar
set -g status-justify centre
set -g status-bg black
set -g status-fg white
set -g status-interval 60
set -g status-left-length 30
set -g status-left '#[fg=colour237]#[bg=colour247,bold] #H #[bg=colour237] #[fg=colour247,nobold][#S] '
set -g status-right '#[bg=colour237]#[fg=colour247] #(cut -d " " -f 1-3 /proc/loadavg)#[default]#[bg=colour237] #[bg=colour247]#[fg=colour237,bold] %H:%M '

View File

@@ -0,0 +1,163 @@
" Set color scheme. Other good ones are bubblegum-256-dark, sorcerer, and zenburn
colorscheme xoria256
" keyboard shortcuts
let mapleader = ','
noremap <leader>b :CtrlPBuffer<CR>
nnoremap <leader>d :NERDTreeToggle<CR>
nnoremap <leader>f :NERDTreeFind<CR>
noremap <leader>p :CtrlP<CR>
noremap <leader>P :CtrlPClearCache<CR>:CtrlP<CR>
noremap <silent> <leader>r :source ~/.vimrc<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR>
" Switch buffers using ctrl+left or ctrl+right
map <C-left> <ESC>:bp<CR>
map <C-right> <ESC>:bn<CR>
" Move between windows easily
noremap <leader><up> :wincmd k<CR>
noremap <leader><down> :wincmd j<CR>
noremap <leader><left> :wincmd h<CR>
noremap <leader><right> :wincmd l<CR>
noremap <leader>k :wincmd k<CR>
noremap <leader>j :wincmd j<CR>
noremap <leader>h :wincmd h<CR>
noremap <leader>l :wincmd l<CR>
" Switch buffers using F5
nnoremap <F5> :buffers<CR>:buffer<Space>
" Set keyboard shortcut for paste toggle.
set pastetoggle=<F10>
map <F12> :call TrimWhiteSpace()<CR>
" Removes trailing spaces
func! TrimWhiteSpace()
%s/\s*$//
''
:endfunction
" Airline
"let g:airline_powerline_fonts=1
"let g:airline#extensions#tabline#enabled = 1
"let g:airline_theme='laederon'
" Clear search highlight with c-l
noremap <silent> <c-l> :nohls<cr><c-l>
" Map <Space> to / (search) and Ctrl-<Space> to ? (backwards search)
map <space> /
map <c-space> ?
let c_space_errors = 1
" Fix tmux background color
if &term =~ '256color'
set t_ut=
endif
" Show line numbers
set number
" Enable filetype plugins
filetype plugin indent on
" Enable syntax highlighting
syntax on
" Turn backup off
set nobackup
set nowb
set noswapfile
" this turns off physical line wrapping (ie: automatic insertion of newlines)
set textwidth=0 wrapmargin=0
" Enable auto-indent
set ai
" Use spaces instead of tabs
set expandtab
" Be smart when using tabs
set smarttab
" 1 tab == 4 spaces
set shiftwidth=4
set tabstop=4
set ai "Auto indent
set si "Smart indent
" Ignore case while searching
set ignorecase
" Highlight search results
set hlsearch
" Makes search act like search in modern browsers
set incsearch
" Set utf8 as standard encoding and en_US as the standard language
set encoding=utf8
" Use Unix as the standard file type
set ffs=unix,dos,mac
" Visual mode pressing * or # searches for the current selection
" Super useful! From an idea by Michael Naumann
vnoremap <silent> * :call VisualSelection('f')<CR>
vnoremap <silent> # :call VisualSelection('b')<CR>
" Return to the last edit position when opening files.
augroup vimrcEx
autocmd!
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" |
\ endif
augroup END
" Ensure cursor is at the top of the file, if editing a git commit message:
au FileType gitcommit au! BufEnter COMMIT_EDITMSG call setpos('.', [0, 1, 1, 0])
" Remember info about open buffers on close
set viminfo^=%
" Returns true if paste mode is enabled
function! HasPaste()
if &paste
return 'PASTE MODE '
en
return ''
endfunction
" Always show the status line
set laststatus=2
" Format the status line
set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l
" Delete trailing white space on save, useful for (Python)
func! DeleteTrailingWS()
exe "normal mz"
%s/\s\+$//ge
exe "normal `z"
endfunc
autocmd BufWrite *.py :call DeleteTrailingWS()
" in case you forgot to sudo
cnoremap w!! %!sudo tee > /dev/null %
" Set the cursorline
set cursorline
"hi cursorline gui=none
augroup CursorlineOnlyInActiveWindow
autocmd!
autocmd VimEnter,WinEnter,BufWinEnter * setlocal cursorline
autocmd WinLeave * setlocal nocursorline
augroup END
" Enhanced vim tweaks
silent! source ~/.vimrc-extra

View File

@@ -0,0 +1,142 @@
" Vim color file
"
" Name: xoria256.vim
" Version: 1.5
" Maintainer: Dmitriy Y. Zotikov (xio) <xio@ungrund.org>
"
" Should work in recent 256 color terminals. 88-color terms like urxvt are
" NOT supported.
"
" Don't forget to install 'ncurses-term' and set TERM to xterm-256color or
" similar value.
"
" Color numbers (0-255) see:
" http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
"
" For a specific filetype highlighting rules issue :syntax list when a file of
" that type is opened.
" Initialization {{{
if &t_Co != 256 && ! has("gui_running")
echomsg ""
echomsg "err: please use GUI or a 256-color terminal (so that t_Co=256 could be set)"
echomsg ""
finish
endif
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let colors_name = "xoria256"
"}}}
" Colours {{{1
"" General {{{2
hi Normal ctermfg=252 guifg=#d0d0d0 ctermbg=234 guibg=#1c1c1c cterm=none gui=none
hi Cursor ctermbg=214 guibg=#ffaf00
hi CursorColumn ctermbg=238 guibg=#444444
hi CursorLine ctermbg=237 guibg=#3a3a3a cterm=none gui=none
hi Error ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000
hi ErrorMsg ctermfg=15 guifg=#ffffff ctermbg=1 guibg=#800000
hi FoldColumn ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
hi Folded ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87
hi IncSearch ctermfg=0 guifg=#000000 ctermbg=223 guibg=#ffdfaf cterm=none gui=none
hi LineNr ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212
hi MatchParen ctermfg=188 guifg=#dfdfdf ctermbg=68 guibg=#5f87df cterm=bold gui=bold
" TODO
" hi MoreMsg
hi NonText ctermfg=247 guifg=#9e9e9e ctermbg=233 guibg=#121212 cterm=bold gui=bold
hi Pmenu ctermfg=0 guifg=#000000 ctermbg=250 guibg=#bcbcbc
hi PmenuSel ctermfg=255 guifg=#eeeeee ctermbg=243 guibg=#767676
hi PmenuSbar ctermbg=252 guibg=#d0d0d0
hi PmenuThumb ctermfg=243 guifg=#767676
hi Search ctermfg=0 guifg=#000000 ctermbg=149 guibg=#afdf5f
hi SignColumn ctermfg=248 guifg=#a8a8a8
hi SpecialKey ctermfg=77 guifg=#5fdf5f
hi SpellBad ctermfg=160 guifg=fg ctermbg=bg cterm=underline guisp=#df0000
hi SpellCap ctermfg=189 guifg=#dfdfff ctermbg=bg guibg=bg cterm=underline gui=underline
hi SpellRare ctermfg=168 guifg=#df5f87 ctermbg=bg guibg=bg cterm=underline gui=underline
hi SpellLocal ctermfg=98 guifg=#875fdf ctermbg=bg guibg=bg cterm=underline gui=underline
hi StatusLine ctermfg=15 guifg=#ffffff ctermbg=239 guibg=#4e4e4e cterm=bold gui=bold
hi StatusLineNC ctermfg=249 guifg=#b2b2b2 ctermbg=237 guibg=#3a3a3a cterm=none gui=none
hi TabLine ctermfg=fg guifg=fg ctermbg=242 guibg=#666666 cterm=none gui=none
hi TabLineFill ctermfg=fg guifg=fg ctermbg=237 guibg=#3a3a3a cterm=none gui=none
" FIXME
hi Title ctermfg=225 guifg=#ffdfff
hi Todo ctermfg=0 guifg=#000000 ctermbg=184 guibg=#dfdf00
hi Underlined ctermfg=39 guifg=#00afff cterm=underline gui=underline
hi VertSplit ctermfg=237 guifg=#3a3a3a ctermbg=237 guibg=#3a3a3a cterm=none gui=none
" hi VIsualNOS ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff cterm=none gui=none
" hi Visual ctermfg=24 guifg=#005f87 ctermbg=153 guibg=#afdfff
hi Visual ctermfg=255 guifg=#eeeeee ctermbg=96 guibg=#875f87
" hi Visual ctermfg=255 guifg=#eeeeee ctermbg=24 guibg=#005f87
hi VisualNOS ctermfg=255 guifg=#eeeeee ctermbg=60 guibg=#5f5f87
hi WildMenu ctermfg=0 guifg=#000000 ctermbg=150 guibg=#afdf87 cterm=bold gui=bold
"" Syntax highlighting {{{2
hi Comment ctermfg=244 guifg=#808080
hi Constant ctermfg=229 guifg=#ffffaf
hi Identifier ctermfg=182 guifg=#dfafdf cterm=none
hi Ignore ctermfg=238 guifg=#444444
hi Number ctermfg=180 guifg=#dfaf87
hi PreProc ctermfg=150 guifg=#afdf87
hi Special ctermfg=174 guifg=#df8787
hi Statement ctermfg=110 guifg=#87afdf cterm=none gui=none
hi Type ctermfg=146 guifg=#afafdf cterm=none gui=none
"" Special {{{2
""" .diff {{{3
hi diffAdded ctermfg=150 guifg=#afdf87
hi diffRemoved ctermfg=174 guifg=#df8787
""" vimdiff {{{3
hi diffAdd ctermfg=bg guifg=bg ctermbg=151 guibg=#afdfaf
"hi diffDelete ctermfg=bg guifg=bg ctermbg=186 guibg=#dfdf87 cterm=none gui=none
hi diffDelete ctermfg=bg guifg=bg ctermbg=246 guibg=#949494 cterm=none gui=none
hi diffChange ctermfg=bg guifg=bg ctermbg=181 guibg=#dfafaf
hi diffText ctermfg=bg guifg=bg ctermbg=174 guibg=#df8787 cterm=none gui=none
""" HTML {{{3
" hi htmlTag ctermfg=146 guifg=#afafdf
" hi htmlEndTag ctermfg=146 guifg=#afafdf
hi htmlTag ctermfg=244
hi htmlEndTag ctermfg=244
hi htmlArg ctermfg=182 guifg=#dfafdf
hi htmlValue ctermfg=187 guifg=#dfdfaf
hi htmlTitle ctermfg=254 ctermbg=95
" hi htmlArg ctermfg=146
" hi htmlTagName ctermfg=146
" hi htmlString ctermfg=187
""" django {{{3
hi djangoVarBlock ctermfg=180
hi djangoTagBlock ctermfg=150
hi djangoStatement ctermfg=146
hi djangoFilter ctermfg=174
""" python {{{3
hi pythonExceptions ctermfg=174
""" NERDTree {{{3
hi Directory ctermfg=110 guifg=#87afdf
hi treeCWD ctermfg=180 guifg=#dfaf87
hi treeClosable ctermfg=174 guifg=#df8787
hi treeOpenable ctermfg=150 guifg=#afdf87
hi treePart ctermfg=244 guifg=#808080
hi treeDirSlash ctermfg=244 guifg=#808080
hi treeLink ctermfg=182 guifg=#dfafdf
""" VimDebug {{{3
" FIXME
" you may want to set SignColumn highlight in your .vimrc
" :help sign
" :help SignColumn
" hi currentLine term=reverse cterm=reverse gui=reverse
" hi breakPoint term=NONE cterm=NONE gui=NONE
" hi empty term=NONE cterm=NONE gui=NONE
" sign define currentLine linehl=currentLine
" sign define breakPoint linehl=breakPoint text=>>
" sign define both linehl=currentLine text=>>
" sign define empty linehl=empty

View File

@@ -0,0 +1,147 @@
###### Prompt
prompt='%F{35}%* [%j] [%m:%F{75}%f%F{69}%c%f%F{35}] %F{black}%K{red}%#%f%k '
##### History
# Set history file
HISTFILE=~/.zhistory
# Set history size
HISTSIZE=10000
# Set the number of lines in $HISTFILE
SAVEHIST="${HISTSIZE}"
# Enable history search with up and down arrows
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
[[ -n "$key[Up]" ]] && bindkey -- "$key[Up]" up-line-or-beginning-search
[[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search
##### Aliases
alias ..='cd ..'
alias ...='cd ../../../'
alias ....='cd ../../../../'
alias back='cd $OLDPWD'
alias c='clear'
alias cd..='cd ..'
alias cp='cp -iv'
alias chmod="chmod -c"
alias chown="chown -c"
alias e="vim -O "
alias E="vim -o "
alias egrep='egrep --colour=auto'
alias extip='curl icanhazip.com'
alias grep='grep --color=auto'
alias l.='ls -lhFa --time-style=long-iso --color=auto'
alias ll='ls'
alias ln='ln -iv'
alias ls='ls -lhF --color=auto --human-readable --time-style=long-iso --classify'
alias lsmount='mount |column -t'
alias mkdir='mkdir -pv'
alias mv='mv -iv'
alias ports='netstat -tulanp'
alias h='history -i'
alias history='history -i'
alias j='jobs -l'
alias rm='rm -iv'
alias rmdir='rmdir -v'
alias speedtest='curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -'
alias ssha='eval $(ssh-agent) && ssh-add'
alias svim='sudo vim'
alias tn=' tmux new -s'
alias wget='wget -c'
if command -v colordiff > /dev/null 2>&1; then
alias diff="colordiff -Nuar"
else
alias diff="diff -Nuar"
fi
## get top process eating memory
alias psmem='ps auxf | sort -nr -k 4'
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
## get top process eating cpu ##
alias pscpu='ps auxf | sort -nr -k 3'
alias pscpu10='ps auxf | sort -nr -k 3 | head -10'
# Safetynets
# do not delete / or prompt if deleting more than 3 files at a time #
alias rm='rm -I --preserve-root'
# Parenting changing perms on / #
alias chown='chown --preserve-root'
alias chmod='chmod --preserve-root'
alias chgrp='chgrp --preserve-root'
# package management
alias update='sudo apt-get update'
alias upgrade='sudo apt-get update && sudo apt-get dist-upgrade'
alias install='sudo apt-get install'
##### Functions
# Easily extract archives
extract () {
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjvf $1 ;;
*.tar.gz) tar xzvf $1 ;;
*.bz2) bzip2 -d $1 ;;
*.rar) unrar2dir $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip2dir $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*.ace) unace x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
reload () {
exec "${SHELL}" "$@"
}
##### shopt
# save timestamp of command and duration
setopt extended_history
# Add commands as they are typed, don't wait until shell exit
setopt inc_append_history
# when trimming history, lose oldest duplicates first
setopt hist_expire_dups_first
# Do not write events to history that are duplicates of previous events
setopt hist_ignore_dups
# remove command line from history list when first character on the line is a space
setopt hist_ignore_space
# When searching history don't display results already cycled through twice
setopt hist_find_no_dups
# don't execute, just expand history
setopt hist_verify
# Stop annoying error when using asterisk in shell commands (i.e. scp server:*.txt .)
setopt nonomatch
# extended globbing, awesome!
setopt extendedGlob
# Turn on command substitution in the prompt (and parameter expansion and arithmetic expansion).
setopt promptsubst

View File

@@ -0,0 +1 @@
bzoicas ALL=(ALL) NOPASSWD: ALL