завершение-префикс-длина отображения не работает на моем терминале.приложение

#terminal #bash-completion

#терминал #bash-завершение

Вопрос:

Я нашел много вопросов по .inputrc, и ответы включали людей, использующих Mac OS X terminal.app.

Но я установил это свойство, и оно не изменило поведение readline. Я попробовал тот же .inputrc на Ubuntu, и это сработало…

Есть ли какие-то конкретные действия, которые я должен предпринять в terminal.app?

Ответ №1:

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

Mac OS X использует editline (потомок libedit, который как бы эмулирует readline) вместо текстового обработчика командной строки more commom readline.

Я все еще изучаю, как работает editline, но я предполагаю, что он не на 100% совместим с readline .inputrc.

Таким образом, мой атрибут completion-prefix-display-length, вероятно, не работает с моей версией OS X editline.

Ответ №2:

Так что это действительно было. Я выполнил следующий тест, чтобы доказать свою гипотезу: я скомпилировал readline под Mac OS X, а затем запустил bash с помощью скомпилированной мной библиотеки readline (через с помощью-readline tool). Все работало нормально, все мои атрибуты inputrc работали, и я закончил свои вопросы.

Таким образом, в Mac OS X строка чтения затеняется строкой редактирования (у нее все еще есть строка чтения.h включает динамические библиотеки и realine, но они являются кодом editline).