Mercurial > hg > zsh-env
annotate zshrc @ 169:2cc8820caae0
extend the distribution detection mechanism
author | Dirk Olmes <dirk.olmes@codedo.de> |
---|---|
date | Sat, 04 Apr 2020 03:17:41 +0200 |
parents | 75e3f2d8368c |
children | 7d3c872681cb |
rev | line source |
---|---|
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
1 # |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
2 # This is the main zshrc file. |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
3 # |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
4 |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
5 if [ -d $HOME/.oh-my-zsh ]; then |
6 | 6 ZSH=$HOME/.oh-my-zsh |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
7 . $HOME/.zsh-env/oh-my-zsh |
3
d31291a406ed
look for oh-my-zsh in a system wide folder
Dirk Olmes <dirk.olmes@exentra.de>
parents:
1
diff
changeset
|
8 elif [ -d /var/lib/zsh/oh-my-zsh ]; then |
6 | 9 ZSH=/var/lib/zsh/oh-my-zsh |
10 . $HOME/.zsh-env/oh-my-zsh | |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
11 fi |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
12 |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
13 # get rid of some unwanted aliases from the oh-my-zsh env |
43
9fa883dc39e0
remove the ll alias right here, where the other aliases are removed, too
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
36
diff
changeset
|
14 if [ "`alias | grep 'll='`" != "" ]; then |
9fa883dc39e0
remove the ll alias right here, where the other aliases are removed, too
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
36
diff
changeset
|
15 unalias ll |
9fa883dc39e0
remove the ll alias right here, where the other aliases are removed, too
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
36
diff
changeset
|
16 fi |
19
f5c6324fc952
remove aliases only if they exist
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
13
diff
changeset
|
17 if [ "`alias | grep 'l='`" != "" ]; then |
f5c6324fc952
remove aliases only if they exist
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
13
diff
changeset
|
18 unalias l |
f5c6324fc952
remove aliases only if they exist
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
13
diff
changeset
|
19 fi |
f5c6324fc952
remove aliases only if they exist
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
13
diff
changeset
|
20 if [ "`alias | grep 'lsa='`" != "" ]; then |
f5c6324fc952
remove aliases only if they exist
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
13
diff
changeset
|
21 unalias lsa |
f5c6324fc952
remove aliases only if they exist
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
13
diff
changeset
|
22 fi |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
23 |
47
9cc72008cf08
enable zsh's fancy autocomplete
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
43
diff
changeset
|
24 # enable zsh's fancy autocomplete |
99
a081e7a3977d
Add support for custom completions to zshrc. Add a completion function to match all ssh keys in ~/.ssh when using ssh-add.
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
77
diff
changeset
|
25 fpath=(~/.zsh-env/completion $fpath) |
47
9cc72008cf08
enable zsh's fancy autocomplete
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
43
diff
changeset
|
26 autoload -U compinit |
127
4c87719f258c
Avoid complaining about compinit when running as sudo
Dirk Olmes <dirk.olmes@codedo.de>
parents:
104
diff
changeset
|
27 |
4c87719f258c
Avoid complaining about compinit when running as sudo
Dirk Olmes <dirk.olmes@codedo.de>
parents:
104
diff
changeset
|
28 # -u avoids compinit complaining when running as root (see man zshcompsys) |
4c87719f258c
Avoid complaining about compinit when running as sudo
Dirk Olmes <dirk.olmes@codedo.de>
parents:
104
diff
changeset
|
29 compinit -u |
47
9cc72008cf08
enable zsh's fancy autocomplete
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
43
diff
changeset
|
30 |
29
8d30bd0d3a50
provide a shortcut alias for pushd
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
21
diff
changeset
|
31 # custom functions/aliases that should work on all platforms |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
32 cd() { builtin cd "$@"; print -D $PWD; } |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
33 ff() { find $2 -print0 | xargs -0 grep $1 } |
77
5cc3c67c9d3f
add a helper function for listing non-comment lines in a file, increase history size
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
64
diff
changeset
|
34 gve() { grep -ve '^#' $1 | uniq | less } |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
35 hgrep() { history | grep $* } |
168
75e3f2d8368c
move the ll and lr functions into the general zshrc
Dirk Olmes <dirk.olmes@codedo.de>
parents:
164
diff
changeset
|
36 ll() { /usr/bin/env -u LC_ALL LANG=C ls -laFh "$@" | more } |
75e3f2d8368c
move the ll and lr functions into the general zshrc
Dirk Olmes <dirk.olmes@codedo.de>
parents:
164
diff
changeset
|
37 lr() { /usr/bin/env -u LC_ALL LANG=C ls -rtlh "$@" } |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
38 mcd() { mkdir $1; cd $1 } |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
39 psg() { ps auxww | grep -v grep | grep -i "$@" } |
168
75e3f2d8368c
move the ll and lr functions into the general zshrc
Dirk Olmes <dirk.olmes@codedo.de>
parents:
164
diff
changeset
|
40 |
75e3f2d8368c
move the ll and lr functions into the general zshrc
Dirk Olmes <dirk.olmes@codedo.de>
parents:
164
diff
changeset
|
41 alias gk="$HOME/.zsh-env/gk.sh" |
75e3f2d8368c
move the ll and lr functions into the general zshrc
Dirk Olmes <dirk.olmes@codedo.de>
parents:
164
diff
changeset
|
42 alias history="history 1" |
75e3f2d8368c
move the ll and lr functions into the general zshrc
Dirk Olmes <dirk.olmes@codedo.de>
parents:
164
diff
changeset
|
43 alias ny="nano -Y none" |
29
8d30bd0d3a50
provide a shortcut alias for pushd
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
21
diff
changeset
|
44 alias pd=pushd |
162
0bd8976bd5fb
add default aliases for gk and removeKernel
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
151
diff
changeset
|
45 alias removeKernel="$HOME/.zsh-env/removeKernel" |
104 | 46 alias sl='screen -ls' |
47 alias sn='screen -S' | |
48 alias sr='screen -r' | |
147
163ef90dd755
add an alias for sudo typos
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
127
diff
changeset
|
49 alias suod=sudo |
58 | 50 alias ta="tmux attach -t" |
63
a543849b6888
add alias for listing tmux sessions
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
59
diff
changeset
|
51 alias tl="tmux list-sessions" |
59 | 52 alias tn="tmux new -s" |
151
55466fa02e0a
move the upload alias to a more generic place
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
147
diff
changeset
|
53 alias upload="rsync --partial --progress --rsh=ssh" |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
54 |
10
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
55 # no history handling for now ... or find a better way to save history per shell not across all shells |
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
56 export HISTFILE= |
77
5cc3c67c9d3f
add a helper function for listing non-comment lines in a file, increase history size
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
64
diff
changeset
|
57 export HISTSIZE=500 |
10
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
58 |
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
59 # emulate tcsh's behaviour for forked processes: do not warn, do not kill when shell is closed |
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
60 setopt nohup |
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
61 setopt no_check_jobs |
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
62 |
13
f6fdf0fe99c3
do not warn when doing rm *
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
12
diff
changeset
|
63 # ignore duplicates in history |
12
13e0030ddaad
ignore duplicate history entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
10
diff
changeset
|
64 setopt hist_ignore_all_dups |
13e0030ddaad
ignore duplicate history entries
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
10
diff
changeset
|
65 |
13
f6fdf0fe99c3
do not warn when doing rm *
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
12
diff
changeset
|
66 # get rid of the silly "zsh: sure you want to delete all the files in ..." message |
f6fdf0fe99c3
do not warn when doing rm *
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
12
diff
changeset
|
67 unsetopt normstarsilent |
10
6c4ab833e66d
emulate tcsh's subprocess behaviour: automatically nohup the jobs, do not warn when exiting the shell
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
9
diff
changeset
|
68 |
64 | 69 # turn off the "helpful" zsh feature of pushing each directory to the dir stack on cd |
21
ee88f708d3ce
turn of adding stuff to the directory stack automatically
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
19
diff
changeset
|
70 unsetopt autopushd |
ee88f708d3ce
turn of adding stuff to the directory stack automatically
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
19
diff
changeset
|
71 |
36 | 72 # turn off "helpful" auto correction |
73 unsetopt correct_all | |
74 | |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
75 # utility function that is used by various other modules |
43
9fa883dc39e0
remove the ll alias right here, where the other aliases are removed, too
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
36
diff
changeset
|
76 removeFromPath() |
9fa883dc39e0
remove the ll alias right here, where the other aliases are removed, too
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
36
diff
changeset
|
77 { |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
78 search_term="$1" |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
79 split_path=(${(s/:/)PATH}) |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
80 clean_path="" |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
81 for element in ${split_path} |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
82 do |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
83 if [[ "${element}" =~ "${search_term}" ]]; then |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
84 continue |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
85 fi |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
86 |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
87 if [ ${#clean_path} -eq 0 ]; then |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
88 clean_path="${element}" |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
89 else |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
90 clean_path="${clean_path}:${element}" |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
91 fi |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
92 done |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
93 echo "${clean_path}" |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
94 } |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
95 |
13
f6fdf0fe99c3
do not warn when doing rm *
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
12
diff
changeset
|
96 # $HOST can either be just the host name or the FQDN. Standardize on the raw host name |
f6fdf0fe99c3
do not warn when doing rm *
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
12
diff
changeset
|
97 export HOST=`echo $HOST | awk -F '.' '{ print $1 }'` |
f6fdf0fe99c3
do not warn when doing rm *
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
12
diff
changeset
|
98 |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
99 # include a zshrc per OS type |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
100 local os_zshrc=$HOME/.zsh-env/zshrc-$OSTYPE |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
101 if [ -f ${os_zshrc} ]; then |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
102 . ${os_zshrc} |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
103 fi |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
104 |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
105 # include a zshrc per host |
1
e12c50e8ea8c
use the builtin HOST variable
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
0
diff
changeset
|
106 local host_zshrc=$HOME/.zsh-env/zshrc-${HOST} |
0
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
107 if [ -r ${host_zshrc} ]; then |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
108 . ${host_zshrc} |
8b245298349a
zsh environment - initial import
Dirk Olmes <dirk@xanthippe.ping.de>
parents:
diff
changeset
|
109 fi |