zsh package added
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
### vim:ft=zsh:foldmethod=marker
|
||||
###
|
||||
### a generic accept-line wrapper
|
||||
###
|
||||
### Frank Terbeck <ft@bewatermyfriend.org>
|
||||
### Last-Modified: Wed Dec 26 14:37:47 2007
|
||||
###
|
||||
### URI: <http://ft.bewatermyfriend.org/comp/zsh.html>
|
||||
###
|
||||
|
||||
function Accept-Line() {
|
||||
setopt localoptions noksharrays
|
||||
local -a subs
|
||||
local -xi aldone
|
||||
local sub
|
||||
|
||||
zstyle -a ":acceptline:${alcontext}" actions subs
|
||||
|
||||
(( ${#subs} < 1 )) && return 0
|
||||
|
||||
(( aldone = 0 ))
|
||||
for sub in ${subs} ; do
|
||||
[[ ${sub} == 'accept-line' ]] && sub='.accept-line'
|
||||
zle ${sub}
|
||||
|
||||
(( aldone > 0 )) && break
|
||||
done
|
||||
}
|
||||
|
||||
function Accept-Line-getdefault() {
|
||||
local default_action
|
||||
|
||||
zstyle -s ":acceptline:${alcontext}" default_action default_action
|
||||
case ${default_action} in
|
||||
((accept-line|))
|
||||
printf ".accept-line"
|
||||
;;
|
||||
(*)
|
||||
printf ${default_action}
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function accept-line() {
|
||||
setopt localoptions noksharrays
|
||||
local -a cmdline
|
||||
local -x alcontext
|
||||
local buf com fname format msg default_action
|
||||
|
||||
alcontext='default'
|
||||
buf="${BUFFER}"
|
||||
cmdline=(${(z)BUFFER})
|
||||
com="${cmdline[1]}"
|
||||
fname="_${com}"
|
||||
|
||||
zstyle -t ":acceptline:${alcontext}" rehash \
|
||||
&& [[ -z ${commands[$com]} ]] \
|
||||
&& rehash
|
||||
|
||||
if [[ -n ${reswords[(r)$com]} ]] \
|
||||
|| [[ -n ${aliases[$com]} ]] \
|
||||
|| [[ -n ${functions[$com]} ]] \
|
||||
|| [[ -n ${builtins[$com]} ]] \
|
||||
|| [[ -n ${commands[$com]} ]] ; then
|
||||
|
||||
# there is something sensible to execute, just do it.
|
||||
alcontext='normal'
|
||||
zle Accept-Line
|
||||
|
||||
default_action=$(Accept-Line-getdefault)
|
||||
zstyle -T ":acceptline:${alcontext}" call_default \
|
||||
&& zle ${default_action}
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -o correct ]] \
|
||||
|| [[ -o correctall ]] \
|
||||
&& [[ -n ${functions[$fname]} ]] ; then
|
||||
|
||||
# nothing there to execute but there is a function called
|
||||
# _command_name; a completion widget. Makes no sense to
|
||||
# call it on the commandline, but the correct{,all} options
|
||||
# will ask for it nevertheless, so warn the user.
|
||||
if [[ ${LASTWIDGET} == 'accept-line' ]] ; then
|
||||
# Okay, we warned the user before, he called us again,
|
||||
# so have it his way.
|
||||
alcontext='force'
|
||||
zle Accept-Line
|
||||
|
||||
default_action=$(Accept-Line-getdefault)
|
||||
zstyle -T ":acceptline:${alcontext}" call_default \
|
||||
&& zle ${default_action}
|
||||
return
|
||||
fi
|
||||
|
||||
# prepare warning message for the user, configurable via zstyle.
|
||||
zstyle -s ":acceptline:${alcontext}" compwarnfmt msg
|
||||
|
||||
if [[ -z ${msg} ]] ; then
|
||||
msg="%c will not execute and completion %f exists."
|
||||
fi
|
||||
|
||||
zformat -f msg "${msg}" "c:${com}" "f:${fname}"
|
||||
|
||||
zle -M -- "${msg}"
|
||||
return
|
||||
elif [[ -n ${buf//[$' \t\n']##/} ]] ; then
|
||||
# If we are here, the commandline contains something that is not
|
||||
# executable, which is neither subject to _command_name correction
|
||||
# and is not empty. might be a variable assignment
|
||||
alcontext='misc'
|
||||
zle Accept-Line
|
||||
|
||||
default_action=$(Accept-Line-getdefault)
|
||||
zstyle -T ":acceptline:${alcontext}" call_default \
|
||||
&& zle ${default_action}
|
||||
return
|
||||
fi
|
||||
|
||||
# If we got this far, the commandline only contains whitespace, or is empty.
|
||||
alcontext='empty'
|
||||
zle Accept-Line
|
||||
|
||||
default_action=$(Accept-Line-getdefault)
|
||||
zstyle -T ":acceptline:${alcontext}" call_default \
|
||||
&& zle ${default_action}
|
||||
}
|
||||
|
||||
zle -N accept-line
|
||||
zle -N Accept-Line
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
[[ -e "/etc/profile.env" ]] && source /etc/profile.env
|
||||
|
||||
umask 022
|
||||
|
||||
if [[ "$USER" == root ]]; then
|
||||
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${ROOTPATH}"
|
||||
else
|
||||
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${PATH}"
|
||||
fi
|
||||
|
||||
unset ROOTPATH
|
||||
@@ -0,0 +1,11 @@
|
||||
#!/bin/zsh
|
||||
#
|
||||
#command not found handler for zsh.
|
||||
#This handler is part of Zsh and is hooked to command-not-found program.
|
||||
#man zshmisc is your friend.
|
||||
|
||||
function command_not_found_handler()
|
||||
{
|
||||
/usr/bin/python /usr/bin/command-not-found $1;
|
||||
return $?
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
# /etc/zsh/zshrc is sourced in interactive shells. It
|
||||
# should contain commands to set up aliases, functions,
|
||||
# options, key bindings, etc.
|
||||
|
||||
# Colors
|
||||
test -f /etc/DIR_COLORS && eval `dircolors /etc/DIR_COLORS`
|
||||
|
||||
autoload -U colors
|
||||
colors
|
||||
|
||||
# Default prompt
|
||||
if [[ "$USER" == root ]]; then
|
||||
PROMPT="%{$bold_color$fg[red]%}%m %{$bold_color$fg[blue]%}%1~ %# %{$reset_color%}"
|
||||
else
|
||||
PROMPT="%{$bold_color%}%n@%m %{$reset_color$fg[red]%}%1~ %# %{$reset_color%}"
|
||||
fi
|
||||
|
||||
# Auto completion
|
||||
autoload -U compinit
|
||||
compinit
|
||||
|
||||
# An accept-line wrapper, see http://bewatermyfriend.org/posts/2007/12-26.11-50-38-tooltime.html
|
||||
autoload -U accept-line
|
||||
accept-line
|
||||
|
||||
# History
|
||||
export HISTFILE=~/.zsh_history
|
||||
export HISTSIZE=50000
|
||||
export SAVEHIST=50000
|
||||
export HISTCONTROL=ignoredups
|
||||
setopt SHARE_HISTORY
|
||||
setopt EXTENDED_HISTORY
|
||||
setopt EXTENDED_GLOB
|
||||
|
||||
# Aliases
|
||||
alias dir='ls --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
alias la='ls --color=auto -la'
|
||||
alias ll='ls --color=auto -l'
|
||||
alias ls='ls --color=auto'
|
||||
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
|
||||
alias rm='rm -i'
|
||||
alias scp-resume='rsync --compress-level=3 --partial --progress --rsh=ssh'
|
||||
|
||||
# Key bindings
|
||||
bindkey -e # emacs key bindings
|
||||
bindkey ' ' magic-space # also do history expansion on space
|
||||
|
||||
bindkey "\e[3~" delete-char
|
||||
bindkey "\e[1~" beginning-of-line
|
||||
bindkey "\e[4~" end-of-line
|
||||
bindkey "\e[H" beginning-of-line
|
||||
bindkey "\e[F" end-of-line
|
||||
bindkey "\e[7~" beginning-of-line
|
||||
bindkey "\e[8~" end-of-line
|
||||
bindkey "^[[5~" up-line-or-history
|
||||
bindkey "^[[6~" down-line-or-history
|
||||
|
||||
# Editor
|
||||
export VISUAL="nano"
|
||||
|
||||
# Other options
|
||||
setopt NO_BEEP
|
||||
setopt CORRECT_ALL
|
||||
setopt AUTO_LIST
|
||||
setopt AUTO_PUSHD
|
||||
setopt PUSHD_IGNORE_DUPS
|
||||
setopt PUSHD_SILENT
|
||||
setopt INTERACTIVE_COMMENTS
|
||||
setopt NONOMATCH
|
||||
setopt NOPROMPT_SP
|
||||
|
||||
zstyle ':completion:*' use-cache on
|
||||
zstyle ':completion:*' cache-path ~/.zsh_cache
|
||||
zstyle ':acceptline:*' rehash true
|
||||
|
||||
case $TERM in
|
||||
xterm*)
|
||||
precmd () {print -Pn "\e]0;%n@%m: %~\a"}
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f /etc/zsh/zsh_command_not_found ] && [ -x /usr/bin/command-not-found ]; then
|
||||
. /etc/zsh/zsh_command_not_found
|
||||
fi
|
||||
Reference in New Issue
Block a user