Это очень возможно. Если ваш bash имеет C-v
, установленный в качестве команды readline quoted-insert, вы можете просто добавить следующее к вашему ~/.inputrc
:
RETURN: "\C-e\C-v\n\C-v\n\n"
Это заставит bash (на самом деле readline) вставить два дословных перевода строки перед обычным интерпретируемым переводом строки. По умолчанию вставляется только один, что приводит к тому, что вывод начинается в строке после приглашения.
Вы можете проверить, установлен ли C-v
в кавычки, введя его в bash (это Ctrl+V
), а затем, например, стрелка вверх. Это должно напечатать ^[[A
или что-то подобное. Если этого не произойдет, вы также можете связать его с ~/.inputrc
:
C-v: quoted-insert
RETURN: "\C-e\C-v\n\C-v\n\n"
~/.inputrc
можно создать, если он не существует. Изменения не вступят в силу при запуске бешей, если вы не введете команду readline re-read-init-file (по умолчанию C-x C-r
). Будьте осторожны, хотя. Если вы делаете что-то не так, команда enter больше не будет выдавать команды, и исправление вашей ошибки может оказаться затруднительным. Если вы сделаете что-то не так, C-o
по умолчанию также примет строку.
Добавление новой строки с последующим перемещением курсора назад к обычному приглашению (как вы описали) возможно, но не даст желаемого эффекта. Вставленная вами новая строка будет просто перезаписана выводом приложения, поскольку вы переместили курсор назад перед ней.