почему бы просто не игнорировать его? избегать-это очень важная тактика в подобные сделки. Я в недоумении. Я взглянуть вокруг и увидеть, если я могу откопать любую дополнительную информацию. Кроме того, ГСС, кажется, испускают желтое свечение вокруг персонажа (при их включении). Спасибо за ваш ответ. Я буду включать это. Сколько строк вы думаете, что письмо-это приятно? У вас есть советник еще? Если это так, вы обсуждали свои проблемы с ним? @JeffSchaller, что работает для `ЗШ` но для `ksh93` или `Баш`, нужно `а=(" {а..я})` (или `A=([1]=а {б..з})` с `Баш`), так как [эти снаряды начинают свою массивов на индекс 0, а не 1 в отличие от всех остальных снарядов](/а/252405).

Похоже на Emacs агрессивный "частичной готовности" степень завершенности стиля.

Часто окончания указанного в команде. Здесь мы используем полный -Д по умолчанию завершение (но без спроса завершения обработчика загрузки), Баш-4.1 или более поздней версии. Это не будет работать хорошо (или вообще) с Баш-завершение пакета или других отдельных команд определенными дополнениями, если у вас есть любой из этих. Как есть, так и не полные команды, только аргументы.

_bc_magicmatch функция() {
 местная шавка=${COMP_WORDS[COMP_CWORD]} # текущий маркер ($2 МКФ Баш>=4.3)
 местные ПЭТ префикс

 ## пипец-в состоянии
 [[ $шавка =~ ^(.*/)?([^/]+) ]] && { # матч (путь/)(наименование)

префикс=${BASH_REMATCH[1]}
ПЭТ=${BASH_REMATCH[2]}
 префикс=$(compgen -з "префикс") # развернуть скидки, как ~

 ## первая форма: "-" для ввода "_" в расширенном имена
 ПЭТ="${ПАТ//-/*_}*" # посыпать "*" в том, чтобы допускать расширение

 ## вторая форма: "-" на входе играм [_-] в расширенном имена
 #ПЭТ="${ПАТ//-/*[_-]}*" # посыпать "*" в том, чтобы допускать расширение

 ## третья форма: без "-" в входной
 #[[ $ПЭТ =~ ${ПАТ//?/(.)} ]] # разбить на массив символов
 Индекс #ИФС="*" ПЭТ="${BASH_REMATCH[*]:1}*" # добавить разделитель МФС, пропуская 0

 readarray -Т COMPREPLY < <(compgen -г "${префикс:+$префикс}$ПАТ")
вернуться
}
 COMPREPLY=() # возврат к заводским завершения 
}

# функция завершения привязки 
полным -Д-О bashdefault -вывода по умолчанию -о nospace -Ф _bc_magicmatch
## или выборочно, для подмножества команд (работает с Баша<4.1)
# полный -о bashdefault -вывода по умолчанию -о nospace -Ф _bc_magicmatch cmd1 cmd2 ...

Рисунок на удар условно можно ограничить активацию, он может быть изменен на .-.- т. е. минимум два переносимых частей, или .+-(.+-)+ позволяет более чем один ведущий персонаж (больше похоже на поведение в Emacs). Вы можете также изменить ПЭТ расширения, альтернатива вторая форма не включена выше, позволит - или _ в расширенном совпадающие имена.

Если вы не хотите, чтобы сепаратор в ваш вклад (это не ясно из вашего примера, если вы хотите дефисы между персонажами), немного дополнительную работу требуется, использовать третью форму выше. Увидеть этот ответ на StackOverflow, который объясняет, что //?/(.)/ и BASH_REMATCH используются для.

Обратите внимание, что compgen -з расширяет все слова, в том числе $() или ` (это только всегда выполняет код, который вы ввели в командной строке, так что это не "опасно"). compgen -Г только расширяет комки, и ~ или ~пользователей не Глоб-состоянии.