First working version

This commit is contained in:
Sameer Rahmani 2013-05-06 16:24:02 +04:30
parent 516ac668d7
commit 623cb108ff
4 changed files with 63 additions and 81 deletions

24
aliases Normal file
View File

@ -0,0 +1,24 @@
# -----------------------------------------------------------------------------
# My.Zsh - My personal zsh configuration
# Copyright (C) 2013 Sameer Rahmani <lxsameer@gnu.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# -----------------------------------------------------------------------------
alias p="python2.7"
alias p3="python3.3"
alias r="ruby"
alias rr="rials"

View File

@ -1,72 +0,0 @@
# fixme - the load process here seems a bit bizarre
unsetopt menu_complete # do not autoselect the first completion entry
unsetopt flowcontrol
setopt auto_menu # show completion menu on succesive tab press
setopt complete_in_word
setopt always_to_end
WORDCHARS=''
zmodload -i zsh/complist
## case-insensitive (all),partial-word and then substring completion
if [ "x$CASE_SENSITIVE" = "xtrue" ]; then
zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
unset CASE_SENSITIVE
else
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
fi
zstyle ':completion:*' list-colors ''
# should this be in keybindings?
bindkey -M menuselect '^o' accept-and-infer-next-history
zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w"
# disable named-directories autocompletion
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
cdpath=(.)
# use /etc/hosts and known_hosts for hostname completion
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _global_ssh_hosts=()
[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
hosts=(
"$_global_ssh_hosts[@]"
"$_ssh_hosts[@]"
"$_etc_hosts[@]"
"$HOST"
localhost
)
zstyle ':completion:*:hosts' hosts $hosts
# Use caching so that commands like apt and dpkg complete are useable
zstyle ':completion::complete:*' use-cache 1
zstyle ':completion::complete:*' cache-path $ZSH/cache/
# Don't complete uninteresting users
zstyle ':completion:*:*:*:users' ignored-patterns \
adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
mailman mailnull mldonkey mysql nagios \
named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
operator pcap postfix postgres privoxy pulse pvm quagga radvd \
rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs
# ... unless we really want to.
zstyle '*' single-ignored show
if [ "x$COMPLETION_WAITING_DOTS" = "xtrue" ]; then
expand-or-complete-with-dots() {
echo -n "\e[31m......\e[0m"
zle expand-or-complete
zle redisplay
}
zle -N expand-or-complete-with-dots
bindkey "^I" expand-or-complete-with-dots
fi

34
my.zsh
View File

@ -17,6 +17,10 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# -----------------------------------------------------------------------------
#[[ -z "$PS1" ]] && return
# Set options
setopt HIST_IGNORE_DUPS \
NO_HIST_BEEP \
PROMPT_SUBST \
@ -24,8 +28,34 @@ setopt HIST_IGNORE_DUPS \
AUTO_CD \
CORRECT
# unset options
unsetopt SHARE_HISTORY
cdpath=(~/src .)
[[ -z "$PS1" ]] && return
# My.Zsh directory path
myzsh=${MYZSH:-$HOME}
# Load aliases
. $myzsh/aliases
# Load the theme and coloring
autoload -U colors && colors
tput colors; print $terminfo[colors]; print $termcap[Co]
theme=${THEME:-$myzsh/themes/lxsameer.zsh-theme}
. $theme
fpath=($myzsh/lib/*.zsh(N) $fpath)
# Autoload functions that have the executable bit on.
for dirname in $fpath; do
fns=( $dirname/*~*~(N.x:t) )
(( ${#fns} )) && autoload $fns
done
project_path=${PROJECTS:-~/src}
cdpath=($project_path $cdpath)

View File

@ -39,18 +39,18 @@ function spaces() {
}
function user_sign () {
if [ $UID != 0 ]; then
echo "$FG[027]»"
echo "%F{027}»"
else
echo "$FG[009]#"
echo "%F{009}#"
fi
}
PROMPT='
$FG[003]%~$FG[008]$(spaces) $(my_git_prompt_info)
$(user_sign) $reset_color'
%F{003}%~%F{008}$(spaces) $(my_git_prompt_info)
$(user_sign) %f'
# git settings
ZSH_THEME_GIT_PROMPT_PREFIX="$FG[002]["
ZSH_THEME_GIT_PROMPT_PREFIX="%F{002}["
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="$FG[003]*"
ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[002]]"
ZSH_THEME_GIT_PROMPT_DIRTY="%F{003}*"
ZSH_THEME_GIT_PROMPT_SUFFIX="%F{002}]"