[Sarlug] Bash completion
max at gamer.yandex.ru
max at gamer.yandex.ru
Fri Jan 31 17:23:11 MSK 2003
Народ. Может кому пригодится : скрипт, который в bash'е по TAB дописывает
имена man топиков. Мне лично его очень недостовало.
------------------------Cut here--------------------
#!/bin/bash
#
# Function:
# complete_man() - assigns COMPREPLY variable list of man topics,
# which are expanded from given argument
# Arguments:
# $1 - not used (reserved for use with bash's "Programmable completion")
# $2 - first part of topic name
# $3 - colon-separated section list (or 'man' for default)
function complete_man() {
#local section=, result=, script=
section=
# Check for section parameter
if [[ "$3" != "man" ]]; then
section="-S $3"
fi
# Get topic list and filter pathnames
result=`man ${section} -aW ${2}* 2>/dev/null | sed -ne "s|.*/||p"`
# Get archive extensions recognized by man
archive_extensions=(`cat /etc/man.conf | gawk -F " " '{ if($1 ~ /\./)
print $1; }'`)
# Strip archive extension
for arch_ext in $archive_extensions; do
script="s/\\${arch_ext}//gp"
result=`echo $result | sed -ne $script`
done;
# Strip section number
result=`echo $result | sed -ne "s/\.[0-9]//gp"`
COMPREPLY=($result)
}
------------------------Cut here--------------------
Прикручивается это так: в ~/.bashrc пишем строчки
source <путь до файла>/complete_man.sh
complete -F "complete_man" man
Если будут какие-нибудь проблемы - пишите...
More information about the Sarlug
mailing list