Конфиг:zshrc2

Материал из Linux Wiki
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

~/.zshrc


source /etc/profile 
source ~/.profile

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
autoload zmv

# $PROMPT style
fpath=(~/.zsh/functions $fpath)
autoload -U promptinit
promptinit
prompt mysuse

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

HISTFILE=~/.zhistory 
SAVEHIST=7770  
HISTSIZE=777

DIRSTACKSIZE=20

setopt  APPEND_HISTORY 
setopt  HIST_IGNORE_ALL_DUPS 
setopt  HIST_IGNORE_SPACE  
setopt  HIST_REDUCE_BLANKS
setopt  No_Beep


alias ls='ls -F --color=auto '
#alias ls='ls -FG'
alias ll='ls -lFG'
#alias la='ls -aFG'
alias la='ls -Flah --color=auto -a'
alias cp='cp -v'
alias mv='mv -v'
alias rm='rm -v'
alias du='du -h'

#alias -s {jpg,gif,bmp,png,xpm}=gqview
#alias -s {mp3,ogg,wav,avi,mpeg,mpg,mov,m2v,wmv}=mplayer
#alias -s {txt,h,c,cpp,cc,conf,4th,diff}=$EDITOR
#alias -s {odt,doc,xls,sxw,rtf}=abiword
#alias -s xls=gnumeric
#alias -s pdf=xpdf
#alias -s chm=xchm
#alias -s djvu=djview


#autoload -U pick-web-browser
#alias -s {html,htm}=pick-web-browser

export EDITOR="vim"
export PATH="${PATH}:/usr/local/sbin:/usr/sbin:/sbin"
export PAGER=most
export G_BROKEN_FILENAMES=1

# csh compatibility
setenv() { 
	typeset -x "${1}${1:+=}${(@)argv[2,$#]}"
}
freload() {
	while (( $# )); do; unfunction $1; autoload -U $1; shift; done 
}
# полезная функция  -  создать каталог(и) и перейти в первый из них
mkcd () {
	mkdir $@ && cd $1
}
# еще одна - поменять два файла

fswap() {
    test -e $1 && test -e $2 && (
    mv $1 $1.tmp
    mv $2 $1
    mv $1.tmp $2
    )
}
# переименовывает файлы из аргументов, добавляя к имени суффикс ".old"
oldit() {
    for f in $@;
    do
        test -e "$f" && mv "$f" "$f.old"
    done
}

# automatically remove duplicates from these arrays
typeset -U path cdpath fpath manpath

export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=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:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.wmv=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'


zstyle ':completion:*:default' list-colors ${LS_COLORS}
zstyle ':completion:*' completer _complete _list _oldlist _expand _ignored _match _correct _approximate _prefix
zstyle ':completion:*' insert-unambiguous true
zstyle ':completion:*' add-space true
zstyle ':completion:*:processes' command 'ps -xuf'
zstyle ':completion:*:processes' sort false
zstyle ':completion:*:processes-names' command 'ps xho command'
zstyle ':completion:*:cd:*' ignore-parents parent pwd
zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'
zstyle ':completion:*:expand:*' tag-order all-expansions
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

#Системные пользователи которых не стоит дополнять
zstyle ':completion:*:*:*:users' ignored-patterns \
root toor daemon operator bin tty kmem games news \
man sshd bind proxy _pflogd _dhcp uucp pop www \
nobody mailnull smmsp gnats jabber mysql messagebus \
dnscache dnslog ftp spamd
zstyle '*' single-ignored show


bindkey -d					# reset
#bindkey -v					# vi key bindings
bindkey -e					# emacs key bindings

# Keyboard configuration
bindkey "\e[2~"		quoted-insert		# Insert
bindkey "\e[3~"		delete-char		# Suppr
bindkey "\e[1~"		beginning-of-line	# Home
bindkey "\e[4~"		end-of-line		# End
bindkey "\e[5~"		up-line-or-history	# Previous
bindkey "\e[6~"		down-line-or-history	# Next

# those two are for rxvt
bindkey "\e[7~"		beginning-of-line
bindkey "\e[8~"		end-of-line

# some xterms, freebsd console
bindkey "\e[H"		beginning-of-line
bindkey "\e[F"		end-of-line

# on some exotic xterms
bindkey "\eOH"		beginning-of-line
bindkey "\eOF"		end-of-line
bindkey "\eOd"		backward-word
bindkey "\eOc"		forward-word

# on nxterms
bindkey "\e[\C-@"	beginning-of-line
bindkey "\e[e"		end-of-line

if [ "${TERM%%-*}" = xterm ]; then
	#
	# Application keypad and cursor of xterm
	# with NumLock ON
	#
	# Operators
	bindkey -s "\eOo"	"/"
	bindkey -s "\eOj"	"*"
	bindkey -s "\eOm"	"-"
	bindkey -s "\eOk"	"+"
	bindkey -s "\eOl"	"+"
	bindkey "\eOM"		accept-line

	# Colon and dot
	# bindkey -s "\eOl"	","
	bindkey -s "\eOn"	"."

	# Numbers
	bindkey -s "\eOp"	"0"
	bindkey -s "\eOq"	"1"
	bindkey -s "\eOr"	"2"
	bindkey -s "\eOs"	"3"
	bindkey -s "\eOt"	"4"
	bindkey -s "\eOu"	"5"
	bindkey -s "\eOv"	"6"
	bindkey -s "\eOw"	"7"
	bindkey -s "\eOx"	"8"
	bindkey -s "\eOy"	"9"

fi

#
# Application keypad and cursor of xterm
#
bindkey "\eOD"		backward-char
bindkey "\eOC"		forward-char
bindkey "\eOA"		up-line-or-history
bindkey "\eOB"		down-line-or-history
#bindkey "\eOE"	re-read-init-file

для промпта mysuse необходимо поместить следующее


autoload -Uz vcs_info

local -a clr
local -A pc
local -A smile
#local _time _path _tail
clr[1]=${1:-'red'}
clr[2]=${2:-'cyan'}
clr[3]=${3:-'green'}
clr[4]=${4:-'yellow'}
clr[5]=${5:-'white'}

pc['\[']="%F{$clr[1]}["
pc['\]']="%F{$clr[1]}]"
pc['<']="%F{$clr[1]}<"
pc['>']="%F{clr[1]}>"
pc['\(']="%F{clr[1]}("
pc['\)']="%F{clr[1]})"

POSTEDIT="$reset_color"

_time=$pc['\[']%B%F{$clr[3]}%*$pc['\]']
_path=$pc['\[']%B%F{$clr[4]}%~%(1/./.)$pc['\]']
_tail="%F{$clr[2]}:\>%b%f"
_inputfmt=%F{$clr[5]}
_namehost=%F{$clr[5]}%n@%m
_smile=%(?.%F{$clr[3]}:\).%F{$clr[1]}:\()%f

prompt="$_time $_path 
$_namehost $_tail $_inputfmt"

RPS1="$_smile"

prompt_opts=( cr percent )
precmd () { }
preexec () { }

в ~/.zsh/functions/prompt_mysuse_setup