Завершение Bash - как избавиться от ненужных нажатий табуляции?

Я использую

cur="${COMP_WORDS[COMP_CWORD]}" 

opts=`sqlite3 test.db "${QUERY[COMP_CWORD]}"`

SAVEIFS="$IFS"

IFS=$'\n'

COMPREPLY=( $(compgen -S"'" -P"'" -W "${opts}" $cur) )

IFS="$SAVEIFS"

для получения возможных вариантов из базы данных и завершаю их с помощью TAB. Поскольку эти варианты могут содержать пробелы, удобно автоцитировать их, используя ' в качестве префикса и суффикса, так что когда я нажимаю A, B, TAB и есть только один вариант с префиксом AB, то я получаю что-то вроде 'ABC DEF'.

Но проблема в том, что если вариантов много, то после A, B, TAB я получаю 'AB, затем я нажимаю TAB еще раз и это NOP, и только при третьем нажатии TAB я получаю возможные завершения.

Есть ли способ уменьшить количество нажатий TAB до одного или хотя бы двух?

9
задан sknaumov 18 January 2012 в 21:31
поделиться