что означает "командная строка -f перекрасить" в оболочке рыбы? - PullRequest
1 голос
/ 05 апреля 2019

При попытке отладить проблему с подсказкой в ​​моей оболочке fish, я прочитал, что функция nextd-or-forward-word вызывает встроенную функцию командной строки с аргументами -f repaint.

Я просто могуне понимаю, что он делает.

В документации для "командной строки -f" говорится, что "вводит функции readline в считыватель", что это значит?

Я даже не уверен вчто такое "readline" здесь.Это библиотека GNU C?Предполагая, что это так, я не могу найти никакого упоминания о «перекрашивании» в документации GNU readline.

Можете ли вы объяснить это мне?

1 Ответ

1 голос
/ 06 апреля 2019

В документации к "командной строке -f" сказано, что "вводит функции readline в считыватель"

Проще говоря, это команды для модуля чтения командной строки fish. (Документация здесь немного жаргонная, да)

Итак, commandline -f repaint говорит рыбе «перекрасить» подсказку. Это означает, что он снова выполнит функции fish_prompt, fish_mode_prompt и fish_right_prompt и перерисовает их вывод.

В случае nextd-or-forward-word, это делает repaint, поэтому отображение $ PWD подсказки обновляется. Если этого не произойдет, nextd переместит вас в другой каталог, но, поскольку вы не execute выполнили обычную команду в командной строке, приглашение останется прежним. А перерисовка после каждого ввода невозможна, поскольку запрос может занять некоторое время.

Это библиотека GNU C?

Это было бы одной вещью, которую библиотека GNU "readline" сделала бы, если бы ее использовал fish. Так что fish внутренне использует термин «readline» также и для вещей, которые имеют отношение к чтению строк, и это просачивается в документы.

...