Как я могу запрограммировать ksh93 на использование автозаполнения bash? - PullRequest
3 голосов
/ 03 июня 2009

В комментарии в ответ на вопрос оболочки пользователь tinkertim сказал, что легко использовать ksh для использования библиотеки автозаполнения bash. Я не хотел бы ничего лучше, чем использовать bash автозаполнение с AT & T ksh93. Как это можно сделать?

ksh93 выпускается по несколько раз в год, поэтому я ищу решение, которое не включает изменение исходного кода. ksh93 может связывать новые модули C динамически, а также является высоко программируемым (я запускаю функцию ksh при каждом нажатии клавиши), поэтому изменение источника не должно быть действительно необходимым.

Примечание: Я не говорю об имени файла автозаполнении, что легко сделать в ksh. Я говорю обо всех других вкусных вещах, которые выполняет bash, таких как опции автозаполнения для команд nmh или автозаполнение команд Mercurial. Вещи, как это.

Ответы [ 5 ]

0 голосов
/ 17 февраля 2017

Попробуйте нажать ESC, затем клавишу \. Он должен имитировать функцию автозаполнения bash.

0 голосов
/ 29 мая 2013

Свяжите клавишу tab для вызова скрипта bash, который использует встроенную функцию complete, поэтому при нажатии на tab в ksh93 фактически выполняется bash для завершения текста.

Consult http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html#Programmable-Completion-Builtins а также http://www2.research.att.com/sw/download/man/man1/ksh.html (подробности см. В разделе «Привязки клавиш»)

0 голосов
/ 13 января 2010

Я думаю, что один из самых простых способов, которые я нашел для этого (на клиентском сервере, где у меня нет доступа к пакетам изменений и еще много чего), - установить для редактора строк значение emacs set -o emacs, а затем дважды нажать ESC (ESC). -ESC).

Это не самое эффективное автозаполнение, но это все, что у меня есть, без какого-либо хакерского взлома моего .profile и, возможно, нарушения правил использования.

0 голосов
/ 10 июня 2010

В дополнение к set -o emacs есть также set -o vi, который активирует комбинацию клавиш ESC- \ для завершения имени файла. (ESC входит в командный режим, \ включает автозаполнение для завершения как можно большей части имени файла.) set -o vi также, конечно, включает вашу командную строку для редактирования в стиле vi с двумя режимами командного режима и режима вставки .

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

Я также заметил здесь другой поток с некоторой связанной информацией автозаполнения ksh, включая ESC- = для получения списка вариантов: текст ссылки

0 голосов
/ 03 июня 2009

Существует оболочка Readline, rlwrap. Возможно, у вас уже есть пакет программного обеспечения для вашей системы.

Он расположен над стандартным вводом запускаемой вами программы, он настраиваемый и немного программируемый, хранит историю.

Я обычно использую его для таких вещей, как Oracle SQL * Plus.

Это может или не может быть инструмент, который вы ищете, вы должны проверить.

...