ZSh. Немного полезностей.

Есть много командных интерпретаторов для юникс систем.

Очень долго пользовался bash'ем.

Очень гибкий и интересный шелл.

Но, как всегда, чего-то не хватало.

Итак, нашелся ZSh.

По поводу него очень много есть статей, факов и прочих манов. В некоторых написано много, в некоторых мало.
Я не буду расписывать полезности, плюсы и минусы, а просто приведу листинги моих конфигурационных файлов, которые позволяют корректировать ввод, автодополнять, выводить доступные параметры исполняемых скриптов/файлов и многое другое.



В файле .zlogin содержится одна строка. Ибо чистота есть хорошо.

clear


В файле .zlogout содержится две строки.
Ибо чистота есть хорошо.


sync
clear

Содержимое файла .zshrc гораздо большее, нежели предыдущих.



  


###
### Author: Nadz Goldman
###
### Site: http://arviol.ru/
###

autoload -U compinit
compinit
autoload -U incremental-complete-word
zle -N incremental-complete-word
autoload -U insert-files
zle -N insert-files
autoload -U predict-on
zle -N predict-on

###
###
###


###
### Cvetastyj prompt i chasiki
###

#PROMPT=$'%{\e[1;32m%}[%{\e[1;34m%}%~%{\e[1;32m%}]%{\e[1;32m%}%#%{\e0%} '
#RPROMPT=$'%{\e[1;32m%}[%{\e[1;34m%}%T%{\e[1;32m%}]%{\e0%}'
#PROMPT=$'%{\e[1;32m%}[%{\e[1;34m%}%T% %~%{\e[1;32m%}]%{\e[1;32m%}%#%{\e0%} '
#PROMPT=$'%T% %~% # '
PROMPT=$'%T %n@%M [%B%d%b]%# '


###
### Zagolovok
###

precmd()
{
[[ -t 1 ]] || return
case $TERM in *xterm*|*shell*|*onsol*|rxvt|(dt|k|E)term*) print -Pn "\e]2;[%~]::%l\a";;
esac
}

preexec()
{
[[ -t 1 ]] || return
case $TERM in *xterm*|rxvt|(dt|k|E)term*) print -Pn "\e]2;[%~]::%l\a";;
esac
}
###
### HISTORY!
###

HISTFILE=~/.ZSh_history
SAVEHIST=5000
HISTSIZE=5000

setopt APPEND_HISTORY
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_REDUCE_BLANKS



###############
## ALIASES ##
###############

alias w="cd /usr/local/www/"
alias u="cd /usr/local/etc/"
alias v="cd /var/log/"
alias l="ls -AFGSahl"


##### bindings! olololo =)

typeset -g -A key
bindkey '^?' backward-delete-char
bindkey '^[[1~' beginning-of-line
bindkey '^[[5~' up-line-or-history
bindkey '^[[3~' delete-char
bindkey '^[[4~' end-of-line
bindkey '^[[6~' down-line-or-history
bindkey '^[[A' up-line-or-search
bindkey '^[[D' backward-char
bindkey '^[[B' down-line-or-search
bindkey '^[[C' forward-char
# completion in the middle of a line
bindkey '^i' expand-or-complete-prefix


###
### Dopolnyahi stroki i prochee
###

zmodload -a zsh/zpty zpty
zmodload -a zsh/zprof zprof
zmodload -ap zsh/mapfile mapfile
zmodload -a zsh/stat stat

### cveta
### completishny


zstyle ':completion:*' completer _complete _list _oldlist _expand _ignored _match _correct _approximate _prefix
zstyle ':completion:*' insert-unambiguous true
zstyle ':completion:*' add-space true
zstyle ':completion:*:default' list-colors '${LS_COLORS}'
zstyle ':completion:*:processes' command 'ps -xuf'
zstyle ':completion:*:processes-names' command 'ps xho command'
zstyle ':completion:*:processes' sort true
zstyle ':completion:*:cd:*' ignore-parents parent pwd
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
zstyle ':completion:*:functions' ignored-patterns '_*'
zstyle ':completion:*' menu select=long-list select=0
zstyle ':completion:*' old-menu false
zstyle ':completion:*' original true
zstyle ':completion:*' substitute 1
zstyle ':completion:*' use-compctl true
zstyle ':completion:*' verbose true
zstyle ':completion:*' word true

Теперь находясь, к примеру, в /usr/ports/ можно сделать cd и дважды нажав кнопку табуляции, увидеть в виде меню список каталогов, в которые можно перейти.
Плюс всякие дополнения с выводом возможных вариантов в качестве такого же меню..
Плюшек много. Всего не рассказать.

 arviol.ru, 2006-2018

Докер -- Сильно. Выгодно. Надежно