114 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" |
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" |
115 |
122 |
116 # canonicalize path (including resolving symlinks) |
123 # canonicalize path (including resolving symlinks) |
117 # alias realpath='readlink -f' |
124 # alias realpath='readlink -f' |
118 |
125 |
|
126 # Special case for CYGWIN to properly display russian letters in rxvt. |
|
127 # Don't forget set in Windows SHELL=/bin/bash. If default SHELL is sh then .bashrc will not be read. |
|
128 if [[ x$OSTYPE = xcygwin ]]; then |
|
129 export LANG=ru_RU.CP1251 |
|
130 # Avoid permission problem in Cygwin. |
|
131 umask 0000 |
|
132 fi |
|
133 |
|
134 export PATH=$PATH:~/usr/bin |
|
135 |
|
136 if [[ -z "$MANPATH" ]]; then |
|
137 export MANPATH=~/usr/share/man: |
|
138 else |
|
139 export MANPATH=$MANPATH:~/usr/share/man: |
|
140 fi |
|
141 |
|
142 if [[ -z "$INFOPATH" ]]; then |
|
143 export INFOPATH=~/usr/share/info: |
|
144 else |
|
145 export INFOPATH=$INFOPATH:~/usr/share/info: |
|
146 fi |
|
147 |
|
148 export PYTHONSTARTUP=~/.pystartup |
|
149 |
|
150 ################################################################ |
|
151 # Key binding. |
|
152 |
|
153 set -o emacs |
|
154 |
|
155 bind '"\e/": dabbrev-expand' |
|
156 bind '"\ee": edit-and-execute-command' |
|
157 |
|
158 ################################################################ |
|
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 |
|
194 _hgsyncew() { |
|
195 local cur=${COMP_WORDS[COMP_CWORD]} |
|
196 COMPREPLY=( $(compgen -W "--push" -- $cur) ) |
|
197 return 0 |
|
198 } |
|
199 complete -F _hgsyncew -o nospace hgsyncew |
|
200 |
|
201 _pathsearch() { |
|
202 local prev cur=${COMP_WORDS[COMP_CWORD]} |
|
203 [[ $COMP_CWORD > 0 ]] && prev=${COMP_WORDS[COMP_CWORD-1]} |
|
204 if [[ $prev = -d ]]; then |
|
205 COMPREPLY=() |
|
206 return 0 |
|
207 fi |
|
208 case "$cur" in |
|
209 -*) COMPREPLY=( $(compgen -W "-d --delimiter= -h --help" -- $cur ) ) ;; |
|
210 *) COMPREPLY=() ;; |
|
211 esac |
|
212 return 0 |
|
213 } |
|
214 complete -F _pathsearch -o nospace pathsearch |
|
215 |
|
216 _mycd() { |
|
217 local cur |
|
218 cur=${COMP_WORDS[COMP_CWORD]} |
|
219 if [[ -z "${CDPATH:-}" || "$cur" == ?(.)?(.)/* ]]; then |
|
220 COMPREPLY=( $(compgen -d -- "$cur") ) |
|
221 return 0 |
|
222 fi |
|
223 local i j k |
|
224 for i in ${CDPATH//:/$'\n'}; do |
|
225 k="${#COMPREPLY[@]}" |
|
226 for j in $( compgen -d -- $i/$cur ); do |
|
227 COMPREPLY[k++]=${j#$i/} |
|
228 done |
|
229 done |
|
230 return 0 |
|
231 } |
|
232 complete -F _mycd -o nospace cd |
|
233 |
|
234 _man() { |
|
235 local p |
|
236 local cur=${COMP_WORDS[COMP_CWORD]} |
|
237 if [[ $cur = /* || $cur = ./* ]]; then |
|
238 COMPREPLY=( $(compgen -f -- $cur) ) |
|
239 fi |
|
240 local IFS=': |
|
241 ' |
|
242 for p in /usr/share/man $MANPATH; do |
|
243 [[ -n $p ]] || continue |
|
244 p=( $p/man*/* ) |
|
245 p=( ${p[@]##*/} ) |
|
246 p=( ${p[@]%.gz} ) |
|
247 p=( ${p[@]%.*} ) |
|
248 p=( $(compgen -W '${p[@]}' -- $cur ) ) |
|
249 COMPREPLY=( ${COMPREPLY[@]} ${p[@]} ) |
|
250 done |
|
251 } |
|
252 complete -F _man man |
|
253 |
|
254 _make() { |
|
255 local i mk |
|
256 local dir=. |
|
257 local cur=${COMP_WORDS[COMP_CWORD]} |
|
258 if [[ $cur = -* ]]; then |
|
259 COMPREPLY=( $(compgen -W "-C -f" -- "$cur") ) |
|
260 return 0 |
|
261 fi |
|
262 [[ $COMP_CWORD > 0 ]] && prev=${COMP_WORDS[COMP_CWORD-1]} |
|
263 for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do |
|
264 case ${COMP_WORDS[i]} in |
|
265 -f) mk=${COMP_WORDS[i+1]} ;; |
|
266 -C) dir=${COMP_WORDS[i+1]} ;; |
|
267 esac |
|
268 done |
|
269 if [[ $prev = -C ]]; then |
|
270 COMPREPLY=( $(compgen -d -- "$cur") ) |
|
271 return 0 |
|
272 fi |
|
273 if [[ $prev = -f ]]; then |
|
274 COMPREPLY=( $(cd $dir >/dev/null 2>&1; compgen -f -- "$cur") ) |
|
275 return 0 |
|
276 fi |
|
277 mk=$dir/$mk |
|
278 [[ -f $mk ]] || mk=$(eval echo $dir/[Mm]akefile) |
|
279 [[ -f $mk ]] || return 1 |
|
280 COMPREPLY=( $(compgen -W "$(sed -n -e '/^[[:alnum:]_-]*:/{s=^\([^:]*\):.*=\1=;p;}' $mk)" -- $cur) ) |
|
281 return 0 |
|
282 } |
|
283 complete -F _make make gmake pmake |
|
284 |
|
285 _cygcheck() { |
|
286 local opt |
|
287 local cur=${COMP_WORDS[COMP_CWORD]} |
|
288 case $COMP_CWORD in |
|
289 1) |
|
290 case $cur in |
|
291 -*) |
|
292 COMPREPLY=( $(compgen -W "-v --verbose -h --help -V --version -c --check-setup -s --sysinfo |
|
293 -k --keycheck -f --find-package -l --list-package -p --package-query" -- "$cur") ) |
|
294 return 0 ;; |
|
295 *) |
|
296 COMPREPLY=( $(compgen -c -- "$cur") ) |
|
297 return 0 ;; |
|
298 esac |
|
299 ;; |
|
300 2) |
|
301 opt=${COMP_WORDS[1]} |
|
302 case $opt in |
|
303 -c|--check-setup|-l|--list-package) |
|
304 pkgs=( /etc/setup/*.lst.gz ) |
|
305 pkgs=( ${pkgs[@]##*/} ) |
|
306 pkgs=( ${pkgs[@]%.lst.gz} ) |
|
307 COMPREPLY=( $(compgen -W '${pkgs[@]}' -- $cur ) ) |
|
308 return 0;; |
|
309 esac |
|
310 return 0;; |
|
311 esac |
|
312 return 0 |
|
313 } |
|
314 complete -F _cygcheck cygcheck.exe cygcheck |
|
315 |
119 # Use bash-completion, if available. |
316 # Use bash-completion, if available. |
120 if [ -f /etc/bash_completion ]; then |
317 if [ -f /etc/bash_completion ]; then |
121 # Under Cygwin bash completition start a long time. |
318 # Under Cygwin bash completition start a long time. |
122 if [ ! "$OSTYPE" = cygwin ]; then |
319 if [ ! "$OSTYPE" = cygwin ]; then |
123 . /etc/bash_completion |
320 . /etc/bash_completion |
129 fi |
326 fi |
130 fi |
327 fi |
131 if [ -f $HOME/usr/etc/bash_completion ]; then |
328 if [ -f $HOME/usr/etc/bash_completion ]; then |
132 . $HOME/usr/etc/bash_completion |
329 . $HOME/usr/etc/bash_completion |
133 fi |
330 fi |
134 |
|
135 # Special case for CYGWIN to properly display russian letters in rxvt. |
|
136 # Don't forget set in Windows SHELL=/bin/bash. If default SHELL is sh then .bashrc will not be read. |
|
137 if [ -n "$COMSPEC" ]; then |
|
138 if [ x$OSTYPE = xcygwin ]; then |
|
139 export LANG=ru_RU.CP1251 |
|
140 fi |
|
141 fi |
|
142 |
|
143 export PATH=$PATH:~/usr/bin |
|
144 |
|
145 if [ -z "$MANPATH" ]; then |
|
146 export MANPATH=~/usr/share/man: |
|
147 else |
|
148 export MANPATH=$MANPATH:~/usr/share/man: |
|
149 fi |
|
150 |
|
151 if [ -z "$INFOPATH" ]; then |
|
152 export INFOPATH=~/usr/share/info: |
|
153 else |
|
154 export INFOPATH=$INFOPATH:~/usr/share/info: |
|
155 fi |
|
156 |
|
157 ################################################################ |
|
158 # Key binding. |
|
159 |
|
160 set -o emacs |
|
161 |
|
162 bind '"\e/": dabbrev-expand' |
|
163 bind '"\ee": edit-and-execute-command' |
|
164 |
|
165 ################################################################ |
|
166 # Completion. |
|
167 |
|
168 # user commands see only users |
|
169 complete -u su passwd write chfn groups slay w sux |
|
170 |
|
171 # bg completes with stopped jobs |
|
172 complete -A stopped -P '"%' -S '"' bg |
|
173 |
|
174 # other job commands |
|
175 complete -j -P '"%' -S '"' fg jobs disown |
|
176 |
|
177 # readonly and unset complete with shell variables |
|
178 complete -v readonly unset |
|
179 |
|
180 # set completes with set options |
|
181 complete -A setopt set |
|
182 |
|
183 # shopt completes with shopt options |
|
184 complete -A shopt shopt |
|
185 |
|
186 # helptopics |
|
187 complete -A helptopic help |
|
188 |
|
189 # unalias completes with aliases |
|
190 complete -a unalias |
|
191 |
|
192 # bind completes with readline bindings (make this more intelligent) |
|
193 complete -A binding bind |
|
194 |
|
195 # type and which complete on commands |
|
196 complete -c command type which |
|
197 |
|
198 # builtin completes on builtins |
|
199 complete -b builtin |
|
200 |
|