Автозаполнение zsh без завершения запроса

Использование bc :

    #!/bin/bash
    n="$@" 
    bc <<< "${n// /+}"

Предположим, что сценарий называется add , или для тех, кто предпочитает простой код, попробуйте эту рабочую функцию оболочки: add () {n = "$ @"; bc ; это работает следующим образом:

add 3.2 5.5
add 3.2 5.5 8.9
add {1..51}.{12..89}

В фигурных скобках используется bash расширение скобок для создания около 4000 строк, которые bc интерпретируются как десятичные числа в диапазоне от 1,12 на 51,89 .

Вывод:

8.7
17.6
105436.89

Обратите внимание, что нет необходимости проверять наличие двух аргументов; он может добавить один или несколько аргументов.

1
02.07.2017, 11:38
2 ответа

Убедитесь, что опция MENU_COMPLETEотключена:

setopt nomenucomplete

MENU_COMPLETE(-Y)

При неоднозначном завершении вместо вывода списка возможностей или звукового сигнала немедленно вставьте первое совпадение. Затем, когда снова запрашивается завершение, удалите первое совпадение и вставьте второе совпадение и т. д. Когда совпадений больше нет, снова вернитесь к первому совпадению. reverse-menu-complete​​может использоваться для перебора списка в другом направлении. Этот параметр имеет приоритет над AUTO_MENU.

0
28.01.2020, 00:53

Один из способов сделать это — использовать инфраструктуру zsh. Рекомендую ой -мой -зш , так как сам им пользуюсь.

При этом нажатие на вкладку один раз покажет все возможности, а повторное нажатие войдет в режим выбора, где возможности будут отображаться в подсказке, и вы можете переключаться между ними не только с помощью табуляции, но и с помощью клавиш со стрелками.

0
28.01.2020, 00:53

Теги

Похожие вопросы