#!/bin/zsh ###. /etc/profile # completion autoload -Uz compinit compinit autoload -Uz colors colors autoload history-search-end zmodload zsh/complist zstyle ':completion:*' menu yes select setopt nobeep # prompt autoload -Uz promptinit promptinit #prompt gentoo #export TERMINFO=/opt/share/terminfo #alias save="flashfs save; flashfs commit; flashfs enable" alias mc="mc -c" #export EDITOR=nano export LC_ALL="ru_RU.UTF-8" export LANG="ru_RU.UTF-8" # Path для поиска командой cd: то есть вместо cd $HOME/docs/editors/ # можно набирать просто cd editors #cdpath=(.. /media /else) zstyle ':completion:*:processes' command 'ps -xuf' zstyle ':completion:*:processes' sort false zstyle ':completion:*:processes-names' command 'ps xho command' ##if [ -e $HOME/.ssh/known_hosts ] ; then ## hosts=(${${${(f)"$(<$HOME/.ssh/known_hosts)"}%% *}%%,*}) ## zstyle ':completion:*:hosts' hosts $hosts ##fi PROMPT='%B%F{red}%n%k%B%F{cyan}@%k%B%F{green}%m%k %B%F{blue}%1~ %# %b%f%k' ## Установка нормального поведения клавиш Delete, Home, End и т.д.: ##case $TERM in ## # ## # для системной консоли (/dev/tty*) ## # ## linux|screen|screen.linux) ## bindkey "^[[2~" yank bindkey "^[[3~" delete-char bindkey "^[[5~" up-line-or-history bindkey "^[[6~" down-line-or-history bindkey "^[[1~" beginning-of-line bindkey "^[[4~" end-of-line bindkey "^[e" expand-cmd-path # C-e for expanding path of typed command #bindkey "^[[A" up-line-or-search # up arrow for back-history-search #bindkey "^[[B" down-line-or-search # down arrow for fwd-history-search ##bindkey "^[[A" history-beginning-search-backward # up arrow for back-history-search ##bindkey "^[[B" history-beginning-search-forward # down arrow for fwd-history-search zle -N history-beginning-search-backward-end history-search-end zle -N history-beginning-search-forward-end history-search-end bindkey "^[[A" history-beginning-search-backward-end # up arrow for back-history-search bindkey "^[[B" history-beginning-search-forward-end # down arrow for fwd-history-search bindkey " " magic-space # do history expansion on space ## ;; ## ## # ## # для X-терминалов ## # ## *xterm*|rxvt|(dt|k|E)term) ## bindkey "^[[2~" yank ## bindkey "^[[3~" delete-char ## bindkey "^[[5~" up-line-or-history ## bindkey "^[[6~" down-line-or-history bindkey "^[[H" beginning-of-line # Клавиша Home bindkey "^[[F" end-of-line # Клавиша End bindkey "^E" expand-cmd-path # C-e добавляет к набираемой команде её ## # абсолютный путь ## # т.е. например, ls заменяется на /bin/ls. ## ## # Действует аналогично команде `which ls` ## ## bindkey "^[[A" up-line-or-search # Стрелка-вверх, пройтись назад по ## # истории введённых команд ## ## bindkey "^[[B" down-line-or-search # Стрелка-вверх, пройтись вперёд по # истории введённых команд ## bindkey " " magic-space ## do history expansion on space ## ;; ##esac typeset -U path cdpath fpath manpath ## Примечание: если не определить здесь nocorrect, ## zsh будет настойчиво предлагать подстановку существующих имен ## при создании каталого, копировании и т.д. ## Разные полезные (ИМХО) alias'ы alias h=history #alias grep=egrep ### вывод свободного дискового пространства в мегабайтах alias df='df -m' ### Представление вывода less в more-подобном виде ### (с именем файла и процентом вывода) alias less='less -M' ### Русский словарь для ispell по умолчанию alias ispell='ispell -d russian' ## aliases для команды ls ### показ классификации файлов в цвете и символически ## alias ls='ls --color=auto' ### вывog в gлuннoм фopмaтe alias ll='ls -l' ### вывog всех файлов, включая dot-фaйлы, kpoмe . u .. alias la='ls -A' ### вывog вcex фaйлoв в gлuннoм фopмaтe, вkлючaя inodes alias li='ls -ial' ### вывод только каталогов alias lsd='ls -ld *(-/DN)' ### вывog тoльko dot-фaйлoв alias lsa='ls -ld .*' # Установка глобальных псевдонимов # для командных конвейеров alias -g M='|more' alias -g L='|less' alias -g H='|head' alias -g T='|tail' alias -g N='2>/dev/null' # Ниже даны опции, относящиеся к функциям zsh, # которыми собственно и определяется мощь этой оболочки # Shell functions setenv() { typeset -x "${1}${1: =}${(@)argv[2,$#]}" } # csh compatibility freload() { while (( $# )); do; unfunction $1; autoload -U $1; shift; done } # Where to look for autoloaded function definitions fpath=( $fpath ~/.zfunc) # Autoload all shell functions from all directories in $fpath (following # symlinks) that have the executable bit on (the executable bit is not # necessary, but gives you an easy way to stop the autoloading of a # particular shell function). $fpath should not be empty for this to work. for func in $^fpath/*(N-.x:t); autoload $func # automatically remove duplicates from these arrays typeset -U path cdpath fpath manpath # Указание путей к man-страницам. manpath="/usr/share/man/ru:/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/qt/doc" export MANPATH # Список хостов, к которым будет применяться автодополнение # при наборе в командной строке # например, как аргументов браузера или ftp-клиента (see later zstyle) ##hosts=(${${${(f)"$(<$HOME/.c_hosts)"}%% *}%%,*}) # Установка вида приглашения ## Обычное приглащение вида ~%=> ## (каталог от домашнего - пользователь/root - стрелка) #PROMPT='%~%#=> ' ## Приглашения для второй линии мноргострочных команд ## вида #_строки> #PROMPT2='%i%U> ' ## Приглашение с правой стороны экрана вида ## 19:15 vc/5 (время - номер консоли) #RPROMPT=' %T %y%b' # Всякие переменные ## файл истории команд ## если не указан, история не будет сохраняться ## при выходе из сеанса HISTFILE=~/.zhistory ## Число команд, сохраняемых в HISTFILE SAVEHIST=5000 ## Чucлo koмaнg, coxpaняeмыx в сеансе HISTSIZE=5000 ## Примечание: ## рекомендуются равные значения для ## SAVEHIST и HISTSIZE DIRSTACKSIZE=20 # Опции истории команд ## Дополнение файла истрии setopt APPEND_HISTORY ## Игнopupoвaть вce пoвтopeнuя команд setopt HIST_IGNORE_ALL_DUPS ## Игнopupo лишние пpoбeлы setopt HIST_IGNORE_SPACE ## Удалять из файл истории пустые строки setopt HIST_REDUCE_BLANKS # Установка-снятие опций шелла setopt autoremoveslash extendedglob menucomplete markdirs setopt globdots correct pushdtohome cdablevars autolist setopt clobber correctall autocd recexact longlistjobs setopt autoresume histignoredups pushdsilent setopt autopushd listpacked pathdirs pushdminus rcquotes unsetopt bgnice autoparamslash ## Отключение звукового сигнала ## при ошибках #setopt No_Beep ## Нe cчuтaть Control C зa выxog uз oбoлoчku #setopt IGNORE_EOF # Autoload zsh modules when they are referenced zmodload -a zsh/stat stat zmodload -a zsh/zpty zpty zmodload -a zsh/zprof zprof zmodload -ap zsh/mapfile mapfile # Опции общего поведения # bindkey -v # режим навигации в стиле vi bindkey -e # peжuм нaвuгaцuu в cтuлe emacs bindkey '^I' complete-word # complete on tab, leave expansion to _expand # Completion Styles # list of completers to use zstyle ':completion:*::::' completer _expand _complete _ignored _approximate # allow one error for every three characters typed in approximate completer zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX $#SUFFIX)/3 )) numeric )' # insert all expansions for expand completer zstyle ':completion:*:expand:*' tag-order all-expansions # formatting and messages zstyle ':completion:*' verbose yes zstyle ':completion:*:descriptions' format '%B%d%b' zstyle ':completion:*:messages' format '%d' zstyle ':completion:*:warnings' format 'Нет совпадений с %d' zstyle ':completion:*:corrections' format '%B%d (ошибки: %e)%b' zstyle ':completion:*' group-name '' zstyle ':completion:*:sudo:*' command-path /usr/local/sbin /usr/sbin /sbin /usr/local/bin /usr/bin /bin /usr/X11R6/bin # 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 # command for process lists, the local web server details and host completion #zstyle ':completion:*:processes' command 'ps -o pid,s,nice,stime,args' #zstyle ':completion:*:urls' local 'www' '/var/www/htdocs' 'public_html' zstyle '*' hosts $hosts # Filename suffixes to ignore during completion (except after rm command) zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns '*?.o' '*?.c~' '*?.old' '*?.pro' # the same for old style completion #fignore=(.o .c~ .old .pro) # ignore completion functions (until the _ignored completer) zstyle ':completion:*:functions' ignored-patterns '_*' zstyle ':completion:*' expand prefix suffix zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' list-prompt %SСейчас на %p. Нажми TAB, чтобы листать далее или следующий символ для подстановки%s zstyle ':completion:*' list-suffixes true zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z} r:|[._-]=** r:|=**' 'm:{a-z}={A-Z} m:{a-zA-Z}={A-Za-z} r:|[._-]=** r:|=** l:|=*' 'm:{a-zA-Z}={A-Za-z} r:|[._-]=** r:|=** l:|=*' 'm:{a-zA-Z}={A-Za-z} r:|[._-]=** r:|=** l:|=*' zstyle ':completion:*' menu select=1 zstyle ':completion:*' preserve-prefix '//[^/]##/' zstyle ':completion:*' select-prompt %SСкроллинг активен. Текущее выделение на: %p%s zstyle ':completion:*' special-dirs true zstyle ':completion:*' squeeze-slashes true #zstyle ':completion:*' use-compctl true