author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Fri, 18 Nov 2011 01:13:21 +0200 | |
changeset 268 | 445d013283e6 |
parent 267 | 180d2b4f3253 |
child 279 | 5845d7aa3ca4 |
permissions | -rw-r--r-- |
250
405b343c1214
Add remainder how debug.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
242
diff
changeset
|
1 |
|
405b343c1214
Add remainder how debug.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
242
diff
changeset
|
2 |
# set -x |
405b343c1214
Add remainder how debug.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
242
diff
changeset
|
3 |
# set -u |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
4 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
5 |
# XXX |
265
acd29a6e6d8d
Use bash built-in 'test' command.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
264
diff
changeset
|
6 |
# [[ -f /etc/bashrc ]] && . /etc/bashrc |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
7 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
# XXX for mc, cvs, svn, ... |
179
ed15e30ff41a
Set editor to VIM. Bind edit command for shells.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
176
diff
changeset
|
9 |
export EDITOR=vim |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
# XXX vim and gnome-terminal have support for 256 colours in fedora 8 at least |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
# Note debian/ubuntu users should install the ncurses-term package to support this |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
13 |
# export TERM=xterm-256color |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
|
17
e11e0adb941b
More verbose prompt, to prevent tangling with another shells.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
16
diff
changeset
|
15 |
PS1='bash# ' |
182
af9e9693646e
Set magenta bold font.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
181
diff
changeset
|
16 |
# Set magenta bold font. |
af9e9693646e
Set magenta bold font.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
181
diff
changeset
|
17 |
case "$TERM" in |
244 | 18 |
xterm*) |
19 |
PS1='\[\033[31m\033[1m\]\h\[\033[35m\]+bash# \[\033[0m\]' |
|
20 |
PS2='\[\033[32m\]> \[\033[0m\]' |
|
182
af9e9693646e
Set magenta bold font.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
181
diff
changeset
|
21 |
;; |
af9e9693646e
Set magenta bold font.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
181
diff
changeset
|
22 |
esac |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
23 |
|
265
acd29a6e6d8d
Use bash built-in 'test' command.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
264
diff
changeset
|
24 |
# if [[ -f ~/.dircolors ]]; then |
208
ba6619e43b22
Add '.dircolors' but don't enable it.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
193
diff
changeset
|
25 |
# eval `dircolors -b ~/.dircolors` |
ba6619e43b22
Add '.dircolors' but don't enable it.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
193
diff
changeset
|
26 |
# fi |
ba6619e43b22
Add '.dircolors' but don't enable it.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
193
diff
changeset
|
27 |
|
41
d410aac55409
Easy cd to often used dirs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
34
diff
changeset
|
28 |
# Easy cd to often used dirs. |
181 | 29 |
CDPATH=.:~:~/devel:~/devel/my-devel |
41
d410aac55409
Easy cd to often used dirs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
34
diff
changeset
|
30 |
|
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
31 |
# Don't store duplicate adjacent items in the history. |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
32 |
# ignorespace do not save lines that start with space |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
33 |
# erasedups all previous lines matching the current line to be removed from |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
34 |
# the history list before that line is saved |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
35 |
HISTCONTROL=igrorespace:erasedups |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
36 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
37 |
# Don't store noisy/dumb items. |
104
653e4ea98ff9
Exclude 'cd' command from history which comes from MC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
93
diff
changeset
|
38 |
# TIP: MC command start with space. |
107
43f69ef5ec58
Remove ? from patterns as I previously incorrectly understand its meaning.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
106
diff
changeset
|
39 |
HISTIGNORE=\ |
43f69ef5ec58
Remove ? from patterns as I previously incorrectly understand its meaning.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
106
diff
changeset
|
40 |
"cd ..":"cd ../..":" cd *":\ |
43f69ef5ec58
Remove ? from patterns as I previously incorrectly understand its meaning.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
106
diff
changeset
|
41 |
"e *":\ |
43f69ef5ec58
Remove ? from patterns as I previously incorrectly understand its meaning.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
106
diff
changeset
|
42 |
"sudo mv *":"sudo rm *":"sudo cp *":"sudo mkdir *":"sudo chmod *":"sudo chown *":\ |
43f69ef5ec58
Remove ? from patterns as I previously incorrectly understand its meaning.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
106
diff
changeset
|
43 |
"vlc *":ls:pwd |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
44 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
45 |
# To these options assigned default value, as they satisfy my needs I comment them. |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
46 |
# HISTFILE=~/.bash_history # where is command history stored |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
47 |
# HISTFILESIZE=500 # how many lines been in $HISTFILE |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
48 |
# HISTSIZE=500 # how many lines been stored in bash process |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
49 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
50 |
# Can be XXX /visible. I like bell. |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
51 |
# set bell-style visible |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
52 |
|
171
47aa0a6acc75
Make Bash append rather than overwrite the history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
168
diff
changeset
|
53 |
# Make Bash append rather than overwrite the history. |
47aa0a6acc75
Make Bash append rather than overwrite the history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
168
diff
changeset
|
54 |
shopt -s histappend |
47aa0a6acc75
Make Bash append rather than overwrite the history.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
168
diff
changeset
|
55 |
|
193
2e4cebaae3cc
histreedit histverify
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
182
diff
changeset
|
56 |
shopt -s histreedit |
2e4cebaae3cc
histreedit histverify
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
182
diff
changeset
|
57 |
shopt -s histverify |
2e4cebaae3cc
histreedit histverify
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
182
diff
changeset
|
58 |
|
28
da6841fb89e9
Minor errors in the spelling of a directory component in a cd command will be corrected.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
16
diff
changeset
|
59 |
# Minor errors in the spelling of a directory component in a cd command will |
da6841fb89e9
Minor errors in the spelling of a directory component in a cd command will be corrected.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
16
diff
changeset
|
60 |
# be corrected. |
da6841fb89e9
Minor errors in the spelling of a directory component in a cd command will be corrected.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
16
diff
changeset
|
61 |
shopt -s cdspell |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
62 |
|
43
6c53a61678d7
Added useful bash settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
42
diff
changeset
|
63 |
# Save all lines of a multiple-line command in the same history entry. |
6c53a61678d7
Added useful bash settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
42
diff
changeset
|
64 |
shopt -s cmdhist |
6c53a61678d7
Added useful bash settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
42
diff
changeset
|
65 |
|
6c53a61678d7
Added useful bash settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
42
diff
changeset
|
66 |
# Allows files beginning with a dot ('.') to be returned in the results of path-name expansion. |
6c53a61678d7
Added useful bash settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
42
diff
changeset
|
67 |
shopt -s dotglob |
6c53a61678d7
Added useful bash settings.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
42
diff
changeset
|
68 |
|
168
0371cfe5a8f5
ksh-88 egrep-style extended pattern matching .
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
157
diff
changeset
|
69 |
# ksh-88 egrep-style extended pattern matching. |
0371cfe5a8f5
ksh-88 egrep-style extended pattern matching .
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
157
diff
changeset
|
70 |
shopt -s extglob |
0371cfe5a8f5
ksh-88 egrep-style extended pattern matching .
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
157
diff
changeset
|
71 |
|
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
72 |
# Adjust settings according to current terminal window width |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
73 |
# which may have changed while the last command was running |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
74 |
# (which is a common occurance for vim/less/etc.) |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
75 |
# Note this is already set in /etc/bashrc on Fedora 8 at least. |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
76 |
shopt -s checkwinsize |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
77 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
78 |
# Let me have core dumps |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
79 |
ulimit -c unlimited |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
80 |
|
44
e4703f904e4b
Use bash-completion, if available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
43
diff
changeset
|
81 |
################################################################ |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
82 |
# shortcut aliases |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
83 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
84 |
alias ..="cd .." #go to parent dir |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
85 |
alias ...="cd ../.." #go to grandparent dir |
109
40feef132306
Fix "alias: --: неправильная опция".
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
107
diff
changeset
|
86 |
alias -- -="cd -" # go to previous dir |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
87 |
alias l.='ls -d .*' #list hidden files |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
88 |
alias ll='ls -lhrt' #extra info compared to "l" |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
89 |
alias lld='ls -lUd */' #list directories |
231
84c9533f2675
I prefer EN man pages.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
230
diff
changeset
|
90 |
# I prefer EN man pages. |
84c9533f2675
I prefer EN man pages.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
230
diff
changeset
|
91 |
alias man='LANG=C man' |
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
92 |
|
251
30e947dddaa3
Shorter alias for jobs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
250
diff
changeset
|
93 |
alias j='jobs ' |
30e947dddaa3
Shorter alias for jobs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
250
diff
changeset
|
94 |
|
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
95 |
# make and change to a directory |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
96 |
md () { mkdir -p "$1" && cd "$1"; } |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
97 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
98 |
# GREP_COLOR=bright yellow on black bg. |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
99 |
# use GREP_COLOR=7 to highlight whitespace on black terminals |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
100 |
# LANG=C for speed. See also: http://www.pixelbeat.org/scripts/findrepo |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
101 |
# alias grep='GREP_COLOR="1;33;40" LANG=C grep --color=auto' |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
102 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
103 |
# alias ls="BLOCK_SIZE=\'1 ls --color=auto" #enable thousands grouping and colour |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
104 |
# alias minicom='minicom -c on' #enable colour |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
105 |
# alias cal='cal -3' #show 3 months by default |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
106 |
# alias units='units -t' #terse mode |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
107 |
# alias diff='LC_ALL=C TZ=GMT0 diff -Naur' #normalise diffs for distribution |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
108 |
# alias lynx='lynx -force_html -width=$COLUMNS' #best settings for viewing HTML |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
109 |
# alias links='links -force-html' #need to enable colour in config menu manually |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
110 |
# alias xterm='xterm -fb "" -bg black -fg gray -fa "Sans Mono" -fs 10 +sb -sl 3000 -g 80x50+1+1' |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
111 |
# alias sudo='sudo env PATH=$PATH' #work around sudo built --with-secure-path (ubuntu) |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
112 |
# alias vim='vim -X' #don't try to contact xserver (which can hang on network issues) |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
113 |
# alias gdb='gdb -tui' #enable the text window interface if possible |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
114 |
|
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
115 |
# what most people want from od (hexdump) |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
116 |
# alias hd='od -Ax -tx1z -v' |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
117 |
|
57
99d0eb7974d6
Remove --comment-delimiters-on-blank-lines option from indent.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
45
diff
changeset
|
118 |
# --blank-lines-after-procedures --break-before-boolean-operator --braces-on-if-line --braces-on-struct-decl-line |
99d0eb7974d6
Remove --comment-delimiters-on-blank-lines option from indent.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
45
diff
changeset
|
119 |
# --comment-indentationn --space-after-cast --line-comments-indentationn --declaration-indentationn --honour-newlines |
99d0eb7974d6
Remove --comment-delimiters-on-blank-lines option from indent.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
45
diff
changeset
|
120 |
# --no-space-after-function-call-names --no-tabs --struct-brace-indentationn --start-left-side-of-comments |
99d0eb7974d6
Remove --comment-delimiters-on-blank-lines option from indent.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
45
diff
changeset
|
121 |
alias indent-bifit="indent -bap -bbo -br -brs -cdw -ce -cli0 -c0 -cs -d0 -di0 -hnl -l120 -lc90 -i4 -npcs -ppi 3 -npsl -nut -sbi4 -sc" |
45
5c94d2613433
Added alias for reindent code for our job rules.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
44
diff
changeset
|
122 |
|
11
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
123 |
# canonicalize path (including resolving symlinks) |
339675ac5fd3
Base version of .bashrc.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
124 |
# alias realpath='readlink -f' |
32
031655c93305
Special case for CYGWIN to properly display russian letters in rxvt.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
30
diff
changeset
|
125 |
|
031655c93305
Special case for CYGWIN to properly display russian letters in rxvt.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
30
diff
changeset
|
126 |
# Special case for CYGWIN to properly display russian letters in rxvt. |
34
cddddb009921
Added useful comment.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
32
diff
changeset
|
127 |
# Don't forget set in Windows SHELL=/bin/bash. If default SHELL is sh then .bashrc will not be read. |
265
acd29a6e6d8d
Use bash built-in 'test' command.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
264
diff
changeset
|
128 |
if [[ x$OSTYPE = xcygwin ]]; then |
258
e3c456cab7ba
Use only $OSTYPE to detect Cygwin.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
257
diff
changeset
|
129 |
export LANG=ru_RU.CP1251 |
e3c456cab7ba
Use only $OSTYPE to detect Cygwin.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
257
diff
changeset
|
130 |
# Avoid permission problem in Cygwin. |
e3c456cab7ba
Use only $OSTYPE to detect Cygwin.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
257
diff
changeset
|
131 |
umask 0000 |
32
031655c93305
Special case for CYGWIN to properly display russian letters in rxvt.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
30
diff
changeset
|
132 |
fi |
126
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
133 |
|
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
134 |
export PATH=$PATH:~/usr/bin |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
135 |
|
265
acd29a6e6d8d
Use bash built-in 'test' command.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
264
diff
changeset
|
136 |
if [[ -z "$MANPATH" ]]; then |
126
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
137 |
export MANPATH=~/usr/share/man: |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
138 |
else |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
139 |
export MANPATH=$MANPATH:~/usr/share/man: |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
140 |
fi |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
141 |
|
265
acd29a6e6d8d
Use bash built-in 'test' command.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
264
diff
changeset
|
142 |
if [[ -z "$INFOPATH" ]]; then |
126
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
143 |
export INFOPATH=~/usr/share/info: |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
144 |
else |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
145 |
export INFOPATH=$INFOPATH:~/usr/share/info: |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
146 |
fi |
d342461b401b
Point PATH, MANPATH, INFOPATH to '~/usr'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
109
diff
changeset
|
147 |
|
226
97139da73273
Enable python statement readline completion and readline history for interactive Python .
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
221
diff
changeset
|
148 |
export PYTHONSTARTUP=~/.pystartup |
97139da73273
Enable python statement readline completion and readline history for interactive Python .
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
221
diff
changeset
|
149 |
|
150 | 150 |
################################################################ |
174
f862e6d84d02
Move key binding as dabbrev-expand defined only in bash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
171
diff
changeset
|
151 |
# Key binding. |
f862e6d84d02
Move key binding as dabbrev-expand defined only in bash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
171
diff
changeset
|
152 |
|
176 | 153 |
set -o emacs |
154 |
||
174
f862e6d84d02
Move key binding as dabbrev-expand defined only in bash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
171
diff
changeset
|
155 |
bind '"\e/": dabbrev-expand' |
179
ed15e30ff41a
Set editor to VIM. Bind edit command for shells.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
176
diff
changeset
|
156 |
bind '"\ee": edit-and-execute-command' |
174
f862e6d84d02
Move key binding as dabbrev-expand defined only in bash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
171
diff
changeset
|
157 |
|
f862e6d84d02
Move key binding as dabbrev-expand defined only in bash.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
171
diff
changeset
|
158 |
################################################################ |
150 | 159 |
# Completion. |
160 |
||
161 |
# user commands see only users |
|
162 |
complete -u su passwd write chfn groups slay w sux |
|
163 |
||
164 |
# bg completes with stopped jobs |
|
165 |
complete -A stopped -P '"%' -S '"' bg |
|
166 |
||
167 |
# other job commands |
|
168 |
complete -j -P '"%' -S '"' fg jobs disown |
|
169 |
||
170 |
# readonly and unset complete with shell variables |
|
171 |
complete -v readonly unset |
|
172 |
||
173 |
# set completes with set options |
|
174 |
complete -A setopt set |
|
175 |
||
176 |
# shopt completes with shopt options |
|
177 |
complete -A shopt shopt |
|
178 |
||
179 |
# helptopics |
|
180 |
complete -A helptopic help |
|
181 |
||
182 |
# unalias completes with aliases |
|
183 |
complete -a unalias |
|
184 |
||
185 |
# bind completes with readline bindings (make this more intelligent) |
|
186 |
complete -A binding bind |
|
187 |
||
188 |
# type and which complete on commands |
|
189 |
complete -c command type which |
|
190 |
||
191 |
# builtin completes on builtins |
|
192 |
complete -b builtin |
|
193 |
||
235
3c0d218db7a3
Add completion for hgsyncew.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
231
diff
changeset
|
194 |
_hgsyncew() { |
239
8f3d4826aec2
Remove '$' sign from arithmetic contexts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
237
diff
changeset
|
195 |
local cur=${COMP_WORDS[COMP_CWORD]} |
237 | 196 |
COMPREPLY=( $(compgen -W "--push" -- $cur) ) |
235
3c0d218db7a3
Add completion for hgsyncew.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
231
diff
changeset
|
197 |
return 0 |
3c0d218db7a3
Add completion for hgsyncew.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
231
diff
changeset
|
198 |
} |
3c0d218db7a3
Add completion for hgsyncew.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
231
diff
changeset
|
199 |
complete -F _hgsyncew -o nospace hgsyncew |
3c0d218db7a3
Add completion for hgsyncew.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
231
diff
changeset
|
200 |
|
236
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
201 |
_pathsearch() { |
239
8f3d4826aec2
Remove '$' sign from arithmetic contexts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
237
diff
changeset
|
202 |
local prev cur=${COMP_WORDS[COMP_CWORD]} |
8f3d4826aec2
Remove '$' sign from arithmetic contexts.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
237
diff
changeset
|
203 |
[[ $COMP_CWORD > 0 ]] && prev=${COMP_WORDS[COMP_CWORD-1]} |
236
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
204 |
if [[ $prev = -d ]]; then |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
205 |
COMPREPLY=() |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
206 |
return 0 |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
207 |
fi |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
208 |
case "$cur" in |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
209 |
-*) COMPREPLY=( $(compgen -W "-d --delimiter= -h --help" -- $cur ) ) ;; |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
210 |
*) COMPREPLY=() ;; |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
211 |
esac |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
212 |
return 0 |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
213 |
} |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
214 |
complete -F _pathsearch -o nospace pathsearch |
8469af3b5d40
Add completion for 'pathsearch'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
235
diff
changeset
|
215 |
|
241
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
216 |
_mycd() { |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
217 |
local cur |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
218 |
cur=${COMP_WORDS[COMP_CWORD]} |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
219 |
if [[ -z "${CDPATH:-}" || "$cur" == ?(.)?(.)/* ]]; then |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
220 |
COMPREPLY=( $(compgen -d -- "$cur") ) |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
221 |
return 0 |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
222 |
fi |
253
70b18b0b9e53
Mark variable as local to avoid overwriting global values.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
252
diff
changeset
|
223 |
local i j k |
241
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
224 |
for i in ${CDPATH//:/$'\n'}; do |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
225 |
k="${#COMPREPLY[@]}" |
255
dc8e50b55c7e
Small command usage improvement.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
254
diff
changeset
|
226 |
for j in $( compgen -d -- $i/$cur ); do |
241
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
227 |
COMPREPLY[k++]=${j#$i/} |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
228 |
done |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
229 |
done |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
230 |
return 0 |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
231 |
} |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
232 |
complete -F _mycd -o nospace cd |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
233 |
|
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
234 |
_man() { |
266
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
235 |
local p |
241
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
236 |
local cur=${COMP_WORDS[COMP_CWORD]} |
267
180d2b4f3253
Proper handle absolute and local path to man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
266
diff
changeset
|
237 |
if [[ $cur = /* || $cur = ./* ]]; then |
180d2b4f3253
Proper handle absolute and local path to man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
266
diff
changeset
|
238 |
COMPREPLY=( $(compgen -f -- $cur) ) |
180d2b4f3253
Proper handle absolute and local path to man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
266
diff
changeset
|
239 |
fi |
266
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
240 |
local IFS=': |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
241 |
' |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
242 |
for p in /usr/share/man $MANPATH; do |
268
445d013283e6
Proper handle '::' sequences in MANPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
267
diff
changeset
|
243 |
[[ -n $p ]] || continue |
266
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
244 |
p=( $p/man*/* ) |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
245 |
p=( ${p[@]##*/} ) |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
246 |
p=( ${p[@]%.gz} ) |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
247 |
p=( ${p[@]%.*} ) |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
248 |
p=( $(compgen -W '${p[@]}' -- $cur ) ) |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
249 |
COMPREPLY=( ${COMPREPLY[@]} ${p[@]} ) |
c3dc97f8c1d2
Look in all dirs from $MANPATH when complete man page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
265
diff
changeset
|
250 |
done |
241
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
251 |
} |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
252 |
complete -F _man man |
e1e0eeee8d51
Enable completion for man pages and CDPATH.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
240
diff
changeset
|
253 |
|
242
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
254 |
_make() { |
253
70b18b0b9e53
Mark variable as local to avoid overwriting global values.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
252
diff
changeset
|
255 |
local i mk |
263
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
256 |
local dir=. |
242
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
257 |
local cur=${COMP_WORDS[COMP_CWORD]} |
263
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
258 |
if [[ $cur = -* ]]; then |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
259 |
COMPREPLY=( $(compgen -W "-C -f" -- "$cur") ) |
242
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
260 |
return 0 |
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
261 |
fi |
263
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
262 |
[[ $COMP_CWORD > 0 ]] && prev=${COMP_WORDS[COMP_CWORD-1]} |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
263 |
for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
264 |
case ${COMP_WORDS[i]} in |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
265 |
-f) mk=${COMP_WORDS[i+1]} ;; |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
266 |
-C) dir=${COMP_WORDS[i+1]} ;; |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
267 |
esac |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
268 |
done |
262
fd0adcd27f18
Complete dirs for '-C' for make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
258
diff
changeset
|
269 |
if [[ $prev = -C ]]; then |
fd0adcd27f18
Complete dirs for '-C' for make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
258
diff
changeset
|
270 |
COMPREPLY=( $(compgen -d -- "$cur") ) |
fd0adcd27f18
Complete dirs for '-C' for make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
258
diff
changeset
|
271 |
return 0 |
fd0adcd27f18
Complete dirs for '-C' for make.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
258
diff
changeset
|
272 |
fi |
263
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
273 |
if [[ $prev = -f ]]; then |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
274 |
COMPREPLY=( $(cd $dir >/dev/null 2>&1; compgen -f -- "$cur") ) |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
275 |
return 0 |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
276 |
fi |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
277 |
mk=$dir/$mk |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
278 |
[[ -f $mk ]] || mk=$(eval echo $dir/[Mm]akefile) |
9a0fc755c9f9
Make '-C' and '-f' option work together.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
262
diff
changeset
|
279 |
[[ -f $mk ]] || return 1 |
242
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
280 |
COMPREPLY=( $(compgen -W "$(sed -n -e '/^[[:alnum:]_-]*:/{s=^\([^:]*\):.*=\1=;p;}' $mk)" -- $cur) ) |
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
281 |
return 0 |
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
282 |
} |
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
283 |
complete -F _make make gmake pmake |
a13e9cd16022
Add completion for 'make'.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
241
diff
changeset
|
284 |
|
264
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
285 |
_cygcheck() { |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
286 |
local opt |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
287 |
local cur=${COMP_WORDS[COMP_CWORD]} |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
288 |
case $COMP_CWORD in |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
289 |
1) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
290 |
case $cur in |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
291 |
-*) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
292 |
COMPREPLY=( $(compgen -W "-v --verbose -h --help -V --version -c --check-setup -s --sysinfo |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
293 |
-k --keycheck -f --find-package -l --list-package -p --package-query" -- "$cur") ) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
294 |
return 0 ;; |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
295 |
*) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
296 |
COMPREPLY=( $(compgen -c -- "$cur") ) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
297 |
return 0 ;; |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
298 |
esac |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
299 |
;; |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
300 |
2) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
301 |
opt=${COMP_WORDS[1]} |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
302 |
case $opt in |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
303 |
-c|--check-setup|-l|--list-package) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
304 |
pkgs=( /etc/setup/*.lst.gz ) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
305 |
pkgs=( ${pkgs[@]##*/} ) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
306 |
pkgs=( ${pkgs[@]%.lst.gz} ) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
307 |
COMPREPLY=( $(compgen -W '${pkgs[@]}' -- $cur ) ) |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
308 |
return 0;; |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
309 |
esac |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
310 |
return 0;; |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
311 |
esac |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
312 |
return 0 |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
313 |
} |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
314 |
complete -F _cygcheck cygcheck.exe cygcheck |
ba2b44143421
Add completion for cygcheck.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
263
diff
changeset
|
315 |
|
240
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
316 |
# Use bash-completion, if available. |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
317 |
if [ -f /etc/bash_completion ]; then |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
318 |
# Under Cygwin bash completition start a long time. |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
319 |
if [ ! "$OSTYPE" = cygwin ]; then |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
320 |
. /etc/bash_completion |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
321 |
else |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
322 |
# But load local completion anyway. |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
323 |
if [ -f ~/.bash_completion ]; then |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
324 |
. ~/.bash_completion |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
325 |
fi |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
326 |
fi |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
327 |
fi |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
328 |
if [ -f $HOME/usr/etc/bash_completion ]; then |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
329 |
. $HOME/usr/etc/bash_completion |
62bea4f80160
Take more priority for 'bash_completion' instead my completion.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
239
diff
changeset
|
330 |
fi |