Как иметь возможности редактирования в приложениях командной строки, которые их не предоставляют

Есть некоторые программы командной строки, которые принимают ввод от пользователя, но не предоставляют возможности редактирования, такие как sh (псевдоним dash) или nslookup и другие.

Существует ли способ заставить такие приложения предоставлять возможности редактирования для исправления текущей строки или вызова предыдущих строк?

3
задан 11 December 2011 в 18:46

2 ответа

Существует как минимум три инструмента для получения того, что требуется, это:

  • rlwrap - оболочка командной строки функции readline
  • rlfe - фронт -конец, используя readline, чтобы «приготовить» строки ввода для других программ
  • ledit - редактор строк для интерактивных программ

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

rlwrap sh

Первое, rlwrap, кажется лучшим, потому что второе делает строку жирным, а третье не показывает подсказку с sh, тем не менее это работает. [ 1111]

0
ответ дан 11 December 2011 в 18:46

Вездесущая технология обучения - readline, потому что программы, скомпилированные с поддержкой readline , уже имеют такую ​​возможность - в любом дистрибутиве Linux и в любых утилитах Unix GNU. (Большинство программ GNU были сделаны таким образом, и это «больно», когда их нет - мне достаточно, чтобы я перекомпилировал их, если они не сделали «правильно».) Это очень похоже на изучение редактора vi - один раз оно "в тебе" никогда не уходит; и это делает работу с различными программами намного более опытной и приятной. Поддержка readline ведет себя одинаково в любой программе, скомпилированной с этой библиотекой. То, как readline был реализован в отдельной программе, зависело от программиста (ов) этой программы, поэтому пробег может варьироваться.

Например, в BASH клавиша со стрелкой вверх вызывает предыдущую строку, и почти в любой консольной программе [CTRL] + [U] стирает все, что осталось от курсора, тогда как [ALT] + [F] перемещает вперед на одно слово. и [ALT] + [B] движется назад на одно слово и еще много ...

Nslookup действительно имеет это, и sh / dash - но они минимальны.

0
ответ дан 11 December 2011 в 18:46

Другие вопросы по тегам:

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