Я часто нахожу себя в этом сценарии. Я нахожусь в процессе ввода команды, и мне нужно проверить что-то еще, прежде чем завершить ее.
Есть ли способ открыть подоболочку некоторого вида с моим текущим вводом, который до сих пор запоминается, тогда, когда я выхожу из этого подоболочки, я возвращаюсь туда, где я был?
$ mylongcommand -n -e <SOME KEY COMBINATION WHICH OPENS A SUBSHELL>
$ date
...
$ exit
$ mylongcommand -n -e <BACK TO WHERE I WAS>
я использую zsh
command-line
zsh
Panayiotis
источник
источник
screen
илиtmux
получить несколько виртуальных терминалов на консоли.Ответы:
Существует комбинация клавиш, EscQкоторая сохраняет буфер команд и позволяет вводить новую команду. После запуска команды буфер содержит то, что вы набрали ранее. Если вам нужно выполнить другую команду, прежде чем закончить, вы можете набрать EscQснова.
(Я не пытался открыть подоболочку после нажатия EscQ.)
Смотрите http://zsh.sourceforge.net/Intro/intro_10.html и ищите «esc-q»
источник
Я обычно использую Ctrl+, Uкоторый стирает текущую строку и сохраняет ее в буфер. Оттуда я делаю то, что когда-либо было нужно до
mylongcommand
. Затем, когда я буду готов, я использую Ctrl+, Yчтобы вставитьmylongcommand
обратно в мою подсказку.Запомните половинную команду, пока я что-то проверяю
источник
Мое решение этого вопроса явно низкотехнологичное и неуклюжее, но опирается на последовательности клавиш, с которыми вы, вероятно, уже знакомы: Hit Ctrl+ A, затем #, затем ENTER.
Это приводит к вставке символа a
#
в начале строки, что делает его комментарием, затем выполняет его, тем самым помещая его в историю команд. Затем вы можете ввести свою вспомогательную команду, затем прокрутить историю команд до прокомментированной команды, удалить#
и завершить команду по мере необходимости.источник
Я набираю Ctrl+, Zчтобы «приостановить» вводимую команду, и набираю другую команду. После того, как я выполнил эту команду (или прервал ее с помощью Ctrl+ C), приостановленная команда возвращается для редактирования (даже с запоминанием позиции курсора). В качестве дополнительного удобства, если командная строка пуста, когда я набираю Ctrl+ Z, клавиша
bg
вместо этого вызывает встроенную функцию (так что double Ctrl+ Zотправляет запущенную команду непосредственно в фоновый режим).(Ранее размещено на странице «Напечатайте наполовину набранную команду, пока я проверяю что-то, что в основном имеет решения для bash, где вы не можете сделать что-либо настолько удобное. Это немного более изящная версия встроенной привязки
M-q
кpush-line
.)Это не запускает подоболочку: команда, которую вы вводите после «приостановки» предыдущей, запускается в той же оболочке. Это позволяет вам, например, изменять текущий каталог, если после ввода команды вы поняли, что хотите запустить ее в другом каталоге. Если вы хотите запустить новый экземпляр оболочки, вы можете запустить
zsh
из привязки клавиш, но я не думаю, что это особенно полезно.источник