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.

312 lines
11 KiB

12 years ago
#!/bin/bash ####################################################################
#
6 years ago
# Изменён: вт 19 фев 2019 13:49: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
export GTK_IM_MODULE="xim" #Метод ввода Χ
export QT_IM_MODULE="xim" #Метод ввода Χ
export export HH_CONFIG="keywords,blacklist,rawhistory" #hstr
11 years ago
export STARDICT_DATA_DIR=$SHELLRC/etc/soft/sdcv/dictionaries/
export SDCV_HISTSIZE=10000
#export SDCV_PAGER=less
7 years ago
# export TERM=xterm
export TERM=xterm-256color
12 years ago
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" #Директория временных файлов
9 years ago
export JAVA_HOME="/usr/lib/jvm/oracle-jdk-bin-1.8/"
#Настройки nnn
export NN_USE_EDITOR=1
12 years ago
#Настройки 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_COLOR='1;31'
#Настройка подсветки мануалов
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
12 years ago
fi
done
}
INIT_PATH=$PATH
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'
6 years ago
path++ $INIT_PATH PATH
#export HOME=$HOME
12 years ago
fi
# }}} ##########################################################################
# {{{ Подключение псевдонимов
################################################################################
[ -f $BASHRC/aliases ] && ALIASES="$BASHRC/aliases" && . $ALIASES && HELPSRC+=("$ALIASES")
#Раскрывать псевдонимы в скриптах
6 years ago
# shopt -s expand_aliases
12 years ago
# }}} ##########################################################################
6 years ago
# {{{ Загрузка системоспецифичных настроек
12 years ago
################################################################################
6 years ago
case "$(uname -s)" in
"Linux") [[ -f $BASHRC/bashrc_linux ]] && . "$BASHRC/bashrc_linux";;
"Cygwin") [[ -f $BASHRC/bashrc_cygwin ]] && . "$BASHRC/bashrc_cygwin";;
"Darwin") [[ -f $BASHRC/bashrc_macos ]] && . "$BASHRC/bashrc_macos";;
esac
12 years ago
# }}} ##########################################################################
[[ "$-" != *i* ]] && return
######################## Настройки интерактивного режима #######################
# {{{ Настройка приглашения
################################################################################
[ -n "$SSH_CLIENT" ] && PROMPT_SHH="[${red}ssh${PROMPT_COLOR}]"
PS2="$green-> $rstc"
PS3="$green+> $rstc"
PS4="$green++ $rstc"
short_pwd() {
# echo -en ' '
6 years ago
# pwd | sed 's@'$HOME'@~@; s@^\([~/][^/]*/\).*\(\(/[^/]*\)\{3\}\)$@\1\2@'
pwd | sed 's@'$HOME'@~@; s@^\(\([~/][^/]*\)\{2\}/\).*\(\(/[^/]*\)\{2\}\)$@\1...\3@'
}
7 years ago
# PROMPT_COMMAND="history -a; history -n;"
PROMPT_COMMAND='history -a;echo -en "\033]0;$(short_pwd)\007"'
12 years ago
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:h:c:exit:,ww:~:..:,-:,w,w:,m:ls:\:q:t:\?" #Не записывать в историю
12 years ago
# }}} ##########################################################################
# {{{ Прочие настройки
################################################################################
#Права на созданные файлы
umask 022
shopt -s progcomp
shopt -s histappend #Не добавлять команды, не переписывая историю
shopt -s cmdhist #Сохранение многострочной команды в одной строке
shopt -s cdable_vars #Аргументы cd могут быть переменными
shopt -s cdspell #Исправление ошибок в именах директорий
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 #Расширенное сопоставление с образцами
# ?(шаблон) Количество появлений указанного шаблона, равное нулю или единице
# *(шаблон) Количество появлений указанного шаблона, равное нулю или больше
# +(шаблон) Одно или большее количество появлений указанного шаблона
# @(шаблон) Одно появление указанного шаблона
# !(шаблон) Всё, кроме одного появления указанного шаблона
#Привычные комбинации клавиш для режима 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
#hstr
bind '"\C-r": "\C-ahh \C-j"'
7 years ago
# bind '"\C-r": "\C-aprintf \033c\e]20;;100x100+1000+1000\a \C-j"'
9 years ago
#commacd
source $SHELLRC/etc/shell/bash/commacd
# alias grep="/usr/bin/grep $GREP_OPTIONS"
unset GREP_OPTIONS
export LC_CTYPE="ru_RU.UTF-8"
#Исправление ошибок с набором акцентов
# if [ "$TERM" == "xterm" ]; then
printf '\33]701;%s\007' "$LANG"
# fi
12 years ago
# }}} ##########################################################################