Как ввести предыдущие строки при вводе команды, которая занимает несколько строк в Bash? Я пользователь Linux Mint (Lisa), использующий терминал GNOME.
Например, скажем, я печатаю:
$ echo "foo bar
> baz
>
А потом, когда я собираюсь набрать третью строку команды, вдруг понимаю, что я хочу, чтобы «foo» и «bar» были в отдельных строках. Как бы мне переместить курсор между «foo» и «bar» так, чтобы я мог нажать ввод и поместить их в отдельные строки?
(Это не так просто, как вы думаете. Стрелка вверх не работает, как и Ctrl-P. Поэтому, пожалуйста, попробуйте это перед публикацией! Спасибо!)
linux
bash
gnome
gnome-terminal
Ашер Вальтер
источник
источник
Ответы:
Это, к сожалению, до
bash
терминала, а не до. Ваши варианты:Используйте точку с запятой вместо новой строки, хотя даже тогда вы не можете одновременно перемещаться вверх по экранной строке, но должны использовать команды перемещения символов или слов. (Как ни странно,
zsh
по крайней мере, вы можете перемещаться внутри составной команды при редактировании истории, но не внутри текущей команды.) Иногдаfc
(которая бросает вас в ваш редактор с помощью предыдущей команды) это самый простой способ обработки составных команд.Если вы используете Bash, используйте следующую комбинацию клавиш:
Откроется команда, над которой вы работаете, используя ваш текстовый редактор. Сохраните файл и выйдите. (Я нашел команду в презентации Shell Hater .) У пользователей Zsh есть такая альтернатива .
источник
Решение состоит в том, чтобы никогда не вводить команду до тех пор, пока многострочная строка не будет правильной, просто введите:, CtrlvCtrlj когда вы хотите перейти к следующей строке. Metabвернуться на слово.
кредит на ответ @ rici
источник
Как ни странно, Ctrl+Cэто то , что вы ищете.
когда ты на
просто нажмите Ctrl+C(отредактированная командная строка будет приостановлена) и нажмите Up(предыдущая история). Ваша подсказка будет: (обратите внимание на отсутствие>)
Теперь вы можете перемещаться Left Rightдаже с помощью прыжков с линии.
Есть только одна особенность, вы должны быть на последнем символе, чтобы добавить еще одну строку, поэтому перемещайтесь, чтобы редактировать существующие строки (переходите к началу Ctrl+A), нажмите, Enter если этого достаточно, или перейдите к концу ( Ctrl+E), чтобы добавить больше строк Enter. Еще одним недостатком является то, что Ctrl+_(отменить) восстанавливает только изменения с последнегоCtrl+C
источник
Скопируйте команды и вставьте их в блокнот, затем отформатируйте их оттуда. После этого вы можете скопировать свои команды обратно в терминал.
источник