Dotfiles.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

310 lines
12 KiB

12 years ago
#!/bin/bash ####################################################################
#
# Изменён: Чт 28 янв 2016 19:41:26
12 years ago
#
################################################################################
################################ Общие настройки ###############################
# {{{ Переменные окружения
################################################################################
export BASH_ENV="$HOME/.bashrc" #Файл настроек интерпретатора
export SHELLRC="$HOME/.shellrc" #Путь к директории настроек
export BASHRC="$SHELLRC/etc/shell/bash" #Путь к настройкам bash
export INPUTRC="$BASHRC/inputrc" #Файл inputrc
11 years ago
export STARDICT_DATA_DIR=$SHELLRC/etc/soft/sdcv/dictionaries/
export SDCV_HISTSIZE=10000
#export SDCV_PAGER=less
12 years ago
export TERM=xterm
export GUILE_HISTORY="$SHELLRC/var/shell/guile.history" #История guile
export GUILE_AUTO_COMPILE=0 #Запрет на автокомпиляцию
export PAGER=less #Страничный просмотрщик
export VISUAL=vim #Стандартный редактор
export EDITOR=vim #Стандартный редактор
export HELPSRC=()
#Не очищать экран при выходе.
#Игнорировать регистр при поиске.
#Подсвечивать новую строку при пролистывании экрана.
#Показывать результат поиска в центре.
export LESS="-X --ignore-case -w --jump-target=.5"
export LESSOPEN="|/usr/bin/lesspipe.sh %s"
export LESSHISTFILE=/dev/null
export LESSCOLOR=yes
export LC_ALL=ru_RU.UTF-8 #Системная локаль
export PRINTER=HP_LaserJet_P1005 #Принтер по умолчанию
export IGNOREEOF=3 #Закрывать оболочку по 3м C-d
export LOGDIR=$SHELLRC/var/log #Директория журналов скриптов
export TODO=$SHELLRC/etc/soft/calcurse/todo #Список дел
export MD=$SHELLRC/var/mail/ #Директория почты
export MAILCAPS=$SHELLRC/etc/mail/mailcap/mailcap #~/.mailcap
12 years ago
export CRON=$SHELLRC/etc/cron/crontab #Задания cron
export TMP="/tmp" #Директория временных файлов
#Настройки cw
export NOCOLOR_PIPE=1
#export CW_INVERT=1
#Настройки компилятора
11 years ago
export CFLAGS="-O2 -pipe"
export MAKEOPTS="-j `getconf _NPROCESSORS_ONLN`"
12 years ago
if [[ $OS != Windows* ]]; then
#Версия gcc
GCCV=$(\gcc --version | head -n 1 | cut -d ' ' -f 3)
fi
#Формат времени, выводимый командой time
# real 0m32.155s
# user 0m0.357s
# sys 0m0.343s
# CPU 2.17%
#
export TIMEFORMAT=$'real\t%3lR\nuser\t%3lU\nsys\t%3lS\nCPU\t%P%'
#Настройка TOR + Privoxy
export http_proxy=
export HTTP_PROXY=
# http_proxy=http://127.0.0.1:8118/
# proxy_address=$http_proxy
# HTTP_PROXY=$http_proxy
# export http_proxy HTTP_PROXY proxy_address
export SBCL_HOME=/usr/lib/sbcl
export MPLAYER_HOME=$HOME/.config/mplayer
export GIMP2_DIRECTORY=$HOME/.local/share/gimp-2.8
export VIMDIR=$SHELLRC/etc/soft/vim/vim
12 years ago
# }}} ##########################################################################
# {{{ Опции подсветки
################################################################################
#Настройка цветовых кодов
rstc="\033[00m"
yellow="\033[1;33m"
blue="\033[1;36m"
red="\033[1;31m"
green="\033[1;32m"
grey="\033[0;37m"
white="\033[1;1m"
#Подсветка результатов grep
export GREP_OPTIONS='--color=auto'
export GREP_COLOR='1;31'
#Цвета ls
export LS_COLORS="\
no=00:fi=00:di=01;34:ln=01;36:\
pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:\
*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:\
*.lzh=01;31:*.zip=01;31:*.7z=01;31:*.rar=01;31:*.z=01;31:*.Z=01;31:\
*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:\
*.jpg=00;35:*.jpeg=00;35:*.JPG=00;35:*.png=00;35:*.gif=00;35:*.bmp=00;35:\
*.ppm=00;35:*.tga=00;35:*.xbm=00;35:*.xpm=00;35:*.tif=00;35:*.png=00;35:\
*.mpg=01;35:*.avi=01;35:*.fli=01;35:*.vob=01;35:*.mp4=01;35:*.wmv=01;35:\
*.txt=00;33:*.doc=00;33:*.odt=00;33:*.rtf=00;33:*.pdf=00;33:*.djvu=00;33:\
*.mp3=01;36:*.wav=01;36:*.ape=01;36:*.ogg=01;36:*.wma=01;36:*.midi=01;36:\
*.flac=01;36:*.gpt=01;38:*.gp2=01;38:*.gp3=01;38:*.gp4=01;38:\
*.c=00;04:*.cpp=00;04:*.pas=00;04:*.ui=00;04:*.sh=00;04:*.py=00;04:*.rb=00;04:\
*.gl=01;35:*.dl=01;35:"
#Настройка подсветки мануалов
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
# }}} ##########################################################################
# {{{ Настройка путей
################################################################################
# removes duplicate paths
# NOTE: symlinks aren't dereferenced (e.g., using `readlink`) as they may
# exist for compatibility reasons
#- Удаление директории(й) из PATH
path-- () {
local IFS=':'
local newpath
local i
for i in ${!2}; do
if [[ "$i" != "$1" ]]; then
12 years ago
newpath=${newpath:+$newpath:}$i
fi
done
export $2="$newpath"
}
#- Добавление директории(й) в PATH. path++ d:i:r:s PATH [before]
path++ () {
local IFS=':'
local oldpath
local i
for i in $1; do
if [[ -d "$i" ]]; then
12 years ago
if [ -z "${!2:-}" ]; then
export $2=""
fi
path-- $i $2
if [ "${3:-}" = "before" ]; then
export $2="$i:${!2:+${!2}}"
else
export $2="${!2:+${!2}:}$i"
fi
else
echo "$i is not a directory" >&2
fi
done
}
INIT_PATH=$PATH
PATH="."
if [[ $OS != Windows* ]]; then
path++ $SHELLRC/etc/shell/cw/def PATH
path++ $SHELLRC/bin/dmenu:$SHELLRC/bin/musca:$SHELLRC/bin/exec PATH
12 years ago
fi
path++ $SHELLRC/bin:$SHELLRC/bin/scripts PATH
path++ /bin:/usr/bin:/usr/local/bin PATH
if [ $UID -eq 0 ]; then
TMOUT=600
PROMPT_COLOR='\033[1;31m'
export HOME=/root
path++ /sbin PATH
path++ /usr/sbin PATH
path++ /usr/local/sbin PATH
else
PROMPT_COLOR='\033[1;32m'
export HOME=/home/$(whoami)
fi
# }}} ##########################################################################
# {{{ Подключение псевдонимов
################################################################################
[ -f $BASHRC/aliases ] && ALIASES="$BASHRC/aliases" && . $ALIASES && HELPSRC+=("$ALIASES")
#Раскрывать псевдонимы в скриптах
shopt -s expand_aliases
# }}} ##########################################################################
# {{{ Настройка Cygwin
################################################################################
if [[ `uname -o` == Cygwin ]]; then
path++ $INIT_PATH PATH
[[ -f $BASHRC/aliases_cygwin ]] && CYGWIN_ALIASES="$BASHRC/aliases_cygwin" \
&& . $CYGWIN_ALIASES \
&& HELPSRC+=("$CYGWIN_ALIASES")
[[ -f $BASHRC/bash_completion_cygwin ]] && . $BASHRC/bash_completion_cygwin
fi
# }}} ##########################################################################
[[ "$-" != *i* ]] && return
######################## Настройки интерактивного режима #######################
# {{{ Настройка приглашения
################################################################################
[ -n "$SSH_CLIENT" ] && PROMPT_SHH="[${red}ssh${PROMPT_COLOR}]"
PS1="$PROMPT_COLOR┌─[$yellow\h$PROMPT_COLOR]─(${yellow}\j${PROMPT_COLOR})$PROMPT_SHH─[$yellow\w$PROMPT_COLOR]\n$PROMPT_COLOR└─[$PROMPT_COLOR\t]\$ $rstc"
12 years ago
PS2="$green-> $rstc"
PS3="$green+> $rstc"
PS4="$green++ $rstc"
PROMPT_COMMAND="history -a; history -n;"
export CDPATH=".:~/FILES:~/FILES/Projects:~/Downloads"
12 years ago
export PROMPT_DIRTRIM=3 #В приглашении показывать 3 директории
# }}} ##########################################################################
# {{{ Настройка автодополнения
################################################################################
export BASH_COMPLETION="$BASHRC/bash_completion"
12 years ago
[ -f $BASHRC/bash_completion ] && . $BASHRC/bash_completion
[ -f $BASHRC/bash_completion_custom ] && . $BASHRC/bash_completion_custom
# }}} ##########################################################################
# {{{ Настройка истории команд
################################################################################
#Раздельная история для рута и пользователя
export HISTFILE=$SHELLRC/var/shell/bash.history-$(whoami | awk '{print $1}';exit)
export HISTSIZE=100000 #Размер истории
export HISTFILESIZE=900000 #Размер файла истории
export HISTTIMEFORMAT='%d.%m.%Y %H:%M:%S ' #Формат записи истории
export HISTCONTROL="ignoreboth" #Игнорировать '^ ' и дубликаты
export HISTIGNORE="&:[bf]g:c:exit:\:q" #Не записывать в историю
# }}} ##########################################################################
# {{{ Прочие настройки
################################################################################
#Права на созданные файлы
umask 022
shopt -s progcomp
shopt -s globstar #Включение масок ** и **/ (рекурсивный перебор)
shopt -s autocd #Интерпретировать команды как параметры cd
shopt -s checkjobs #При выходе проверять фоновые задания
shopt -s histappend #Не добавлять команды, не переписывая историю
shopt -s cmdhist #Сохранение многострочной команды в одной строке
shopt -s cdable_vars #Аргументы cd могут быть переменными
shopt -s cdspell #Исправление ошибок в именах директорий
shopt -s dirspell #Исправление имен директорий при автодополнении
shopt -s checkhash #Проверка на существование команд в хеш-таблице
shopt -s lithist #Заменять ';' на '\n' в многострочных командах
shopt -s histreedit #Повторное редактирование команды
shopt -s promptvars #Раскрывать значения переменных в приглашении
shopt -s hostcomplete #Дополнение имен хостов (@...)
shopt -s interactive_comments #Игнорирование строк, начинающихся на #
shopt -s dotglob #Подстановка скрытых файлов
shopt -s nocaseglob #Подстановка без учета регистра
shopt -s checkwinsize #Проверять размер окна терминала
shopt -s no_empty_cmd_completion #Не дополнять пустую строку
shopt -s xpg_echo #echo -e -E
shopt -s extglob #Расширенное сопоставление с образцами
# ?(шаблон) Количество появлений указанного шаблона, равное нулю или единице
# *(шаблон) Количество появлений указанного шаблона, равное нулю или больше
# +(шаблон) Одно или большее количество появлений указанного шаблона
# @(шаблон) Одно появление указанного шаблона
# !(шаблон) Всё, кроме одного появления указанного шаблона
[[ (-f $BASHRC/cdargs-bash.sh) && (`uname -o` != Cygwin) ]] && . $BASHRC/cdargs-bash.sh
#Привычные комбинации клавиш для режима vi
bind -m vi-command ".":insert-last-argument
bind -m vi-insert "\C-l.":clear-screen
bind -m vi-insert "\C-a.":beginning-of-line
bind -m vi-insert "\C-e.":end-of-line
bind -m vi-insert "\C-w.":backward-kill-word
bind -m vi-insert "\C-o":history-search-backward
bind -m vi-insert "\C-k":kill-line
# bind -m vi-insert "\C-n":history-search-forward
12 years ago
# }}} ##########################################################################