You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
4.0 KiB
135 lines
4.0 KiB
#!/bin/bash ######################### |
|
# |
|
# Изменён: Сб 01 июн 2019 23:24:01 |
|
# |
|
#complete <что дополнять> <программа> |
|
|
|
complete -A alias {,un}alias |
|
complete -A hostname rsh rcp telnet rlogin r ftp ping disk |
|
complete -A export printenv |
|
complete -A variable export local readonly unset |
|
complete -A enabled builtin |
|
complete -A function function |
|
complete -A user su mail finger |
|
|
|
complete -A shopt shopt |
|
complete -A stopped -P '%' bg |
|
complete -A job -P '%' fg jobs disown |
|
|
|
complete -A directory mkdir rmdir |
|
complete -A directory -o default cd |
|
|
|
complete -f -o default g git fd rg |
|
|
|
complete -F _killall killall pkill pskill |
|
|
|
#Сжатые данные |
|
complete -f -o default -X '*.+(zip|ZIP)' zip pk |
|
complete -f -o default -X '!*.+(zip|ZIP)' unzip ext |
|
complete -f -o default -X '*.+(z|Z)' compress pk |
|
complete -f -o default -X '!*.+(z|Z)' uncompress ext |
|
complete -f -o default -X '*.+(gz|GZ)' gzip pk |
|
complete -f -o default -X '!*.+(gz|GZ)' gunzip ext |
|
complete -f -o default -X '*.+(bz2|BZ2)' bzip2 pk |
|
complete -f -o default -X '!*.+(bz2|BZ2)' bunzip2 ext |
|
complete -f -o default -X '!*.+(rar|RAR|zip|ZIP|z|Z|gz\ |
|
|GZ|bz2|BZ2|tgz|tbz2)' ext |
|
|
|
#Документы |
|
complete -f -o default -X '!*.+(ps|PS)' zathura z |
|
complete -f -o default -X '!*.+(pdf|PDF)' zathura z |
|
# complete -f -o default -X '!*.texi*' makeinfo texi2dvi texi2pdf |
|
# complete -f -o default -X '!*.tex' kile tex latex slitex |
|
# complete -f -o default -X '!*.+(htm*|HTM*)' konqueror firefox lynx html2ps |
|
# complete -f -o default -X '!*.+(doc|DOC|xls|\ |
|
# XLS|ppt|PPT|sx?|SX?|csv|CSV|od?|OD?|ott|OTT)' soffice |
|
|
|
#Мультимедийные файлы |
|
# complete -f -o default -X '!*.+(gif|GIF|jp*g|\ |
|
# JP*G|bmp|BMP|xpm|XPM|png|PNG)' xv gimp geeqie |
|
|
|
# complete -f -o default -X '!*.+(mp3|MP3)' amarok mpg123 mpg321 |
|
# complete -f -o default -X '!*.+(ogg|OGG)' amarok ogg123 |
|
# complete -f -o default -X '!*.@(mp[23]|MP[23]|\ |
|
# ogg|OGG|wav|WAV|pls|m3u|xm|mod|s[3t]m|it|mtm|ult|flac)' amarok |
|
|
|
# complete -f -o default -X '!*.@(mp?(e)g|MP?(E)G|\ |
|
# wma|avi|AVI|asf|vob|VOB|bin|dat|vcd|ps|pes|fli|viv|\ |
|
# rm|ram|yuv|mov|MOV|qt|QT|wmv|mp3|MP3|ogg|OGG|ogm|OGM|\ |
|
# mp4|MP4|wav|WAV|asx|ASX)' smplayer mplayer xine vlc |
|
|
|
# complete -f -o default -X '!*.+(gpt|gp3|gp4|gp5)' tuxguitar |
|
|
|
#Программирование |
|
complete -f -o default -X '!*.tcl' tclsh wish nagelfar |
|
complete -f -o default -X '!*.pl' perl perl5 |
|
complete -f -o default -X '!*.sh' sh bash |
|
complete -f -o default -X '!*.+(c|cpp)' gcc g++ mpp |
|
complete -f -o default -X '!*.hs' runghc ghc |
|
|
|
#Запуск и остановка сервисов |
|
_rcd () { |
|
COMPREPLY=($(\ls /etc/rc.d/rc.$(echo $2 | \ |
|
sed 's;/etc/rc.d/rc\.;;g')* 2> /dev/null)) |
|
} |
|
|
|
complete -F _rcd start stop restart |
|
|
|
_local-bins () { |
|
if [[ $2 == "" ]]; then |
|
COMPREPLY=($(\ls $SHELLRC/bin/scripts/ $SHELLRC/bin/dmenu \ |
|
| sed '/^\/.*:$/d; /^\s*$/d' 2> /dev/null)) |
|
else |
|
COMPREPLY=($(\ls $SHELLRC/bin/scripts/ $SHELLRC/bin/dmenu \ |
|
| sed '/^\/.*:$/d; /^\s*$/d' | grep $2 2> /dev/null)) |
|
fi |
|
} |
|
|
|
complete -F _local-bins vimwhich catwhich nlwhich |
|
|
|
complete -c command cdwhich |
|
|
|
# Функция, т.к. grep позволяет дополнять подстроку в любом регистре |
|
_updirs() { |
|
if [[ $2 == "" ]]; then |
|
COMPREPLY=($(echo "$PWD" | tr '/' "\n")) |
|
else |
|
COMPREPLY=($(echo "$PWD" | tr '/' "\n" | grep -i "$2" 2> /dev/null)) |
|
fi |
|
} |
|
|
|
complete -F _updirs up |
|
|
|
#Дополнение пакетов |
|
_slapt-r () { |
|
if [[ $2 == "" ]]; then |
|
COMPREPLY=($(slapt-get --available | cut -d ' ' -f 1)) |
|
else |
|
COMPREPLY=($(slapt-get --available | cut -d ' ' -f 1 | grep $2)) |
|
fi |
|
} |
|
|
|
complete -F _slapt-r slapt-get |
|
|
|
# cheat.sh |
|
_cht_complete() |
|
{ |
|
local cur prev opts |
|
_get_comp_words_by_ref -n : cur |
|
|
|
COMPREPLY=() |
|
cur="${COMP_WORDS[COMP_CWORD]}" |
|
prev="${COMP_WORDS[COMP_CWORD-1]}" |
|
opts="$(curl -s cheat.sh/:list)" |
|
|
|
if [ ${COMP_CWORD} = 1 ]; then |
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) |
|
__ltrim_colon_completions "$cur" |
|
fi |
|
return 0 |
|
} |
|
|
|
complete -F _cht_complete cheat.sh |
|
|
|
[ -f $BASHRC/bash_completion_surfraw ] && . $BASHRC/bash_completion_surfraw |
|
|
|
|