Автозаполнение удаляет последний символ из слов иногда

У меня есть пользовательская команда define которая получает определение слов из словаря. Я хотел сделать сценарий автозаполнения, чтобы завершить слова, которые я хочу определить, используя список слов, найденных в /usr/share/dict/words . Это то, что у меня есть до сих пор:

Сценарий автозаполнения: /etc/bash_completion.d/define

 _define() { dict='/usr/share/dict/words' cur=${COMP_WORDS[COMP_CWORD]} regex="^$cur*" words=$(grep $regex $dict) if [[ $cur != -* ]] then COMPREPLY=( $( compgen -W "$(echo $words)" $cur) ) else COMPREPLY=() fi return 0 } complete -F _define define 

Когда я нажимаю [tab][tab] иногда я получаю список слов, начинающихся с введенного слова, а иногда просто удаляет последний символ. Например, когда я define wall [tab][tab] я получаю define wal , но если я define wal [tab][tab] я получаю список слов.

Почему это происходит?

One Solution collect form web for “Автозаполнение удаляет последний символ из слов иногда”

Проблема оказалась чем-то связана с одиночными кавычками в списке слов завершения, я исправил ее, изменив регулярное выражение команды grep от ^$cur* до ^$cur[^']*$ :

 _define() { local dict='/usr/share/dict/words' local cur=${COMP_WORDS[COMP_CWORD]} local regex="^$cur[^']*$" if [[ $cur == -* ]] then COMPREPLY=() else local WORDS="$( grep "$regex" $dict )" COMPREPLY=( $(compgen -W "${WORDS}" -- $cur) ) fi } complete -F _define define 
  • Отключить завершение подстроки в zsh
  • Trouble w / bash программируемое завершение совпадений с именами файлов
  • Как выполнить автоматическое заполнение параметров TAB?
  • Добавить автозаполнение для пользовательского скрипта
  • Завершение Bash: отдельно показывайте результаты из разных источников
  • Есть ли обходной путь для удаления файла-файла Debian $ _?
  • Какова функция @ в командной строке после имени файла
  • Завершить только в начале слова
  • Как сохранить конечную косую черту после выбора каталога из параметров завершения zsh?
  • Zsh завершение команд hadoop
  • Как перенести список завершения zsh с фиксированной строкой текста до и после?
  • Interesting Posts

    Может ли два файла в каталоге находиться в разных файловых системах

    Как исправить «пропуск несовместимого /usr/lib/libc.a»

    Что означают символы y / d / N?

    Запуск локальных скриптов на нескольких серверах с использованием пользователя sudo через скрипт

    Как создать псевдоним для zsh?

    systemd apt прикреплен к -1 и установлен при обновлении с Debian 8 до Debian 9

    Конки верхняя панель, которая простирается по всему экрану

    Подсчитайте максимальную длину символа для всех полей данных в упрощенном файле csv и выведите на txt

    Невозможно переадресовать пакет в pf при настройке прозрачного кальмара 3.4.13 на OpenBSD 5.7

    Сервер Freeradius для нескольких сетей поставщиков

    Как проверить, присутствует ли файл, начинающийся с определенного префикса, в каталоге в сценарии оболочки

    «Нет такого файла или каталога» после выполнения ссылки

    Как автоматически запускать скрипт при подключении устройства Bluetooth?

    Puppet: принуждение пользователя изменить пароль при следующем входе в систему

    Временно смонтированные файловые системы внезапно отключаются

    Linux и Unix - лучшая ОС в мире.