3

При использовании vim для «ответа» какой-либо программе - обычно это git - может быть полезно преднамеренно завершить работу с ошибкой, чтобы отменить все действие, открывшее окно. подобно

$ git commit -a
# vim opens, showing me the staged files and asking for a commit message
# oops, I see some stuff staged that wasn't supposed to be committed
:cq     # exit vim with nonzero exit code

Это не позволит git выполнить коммит.

К сожалению, на некоторых машинах nano сконфигурирован как редактор по умолчанию, поэтому я иногда оказываюсь в этом редакторе и, соответственно, беспомощен.

На данный момент я сделал следующее: войдите в систему с помощью другой сессии ssh и killall editor .

Есть ли способ сделать то же самое изнутри самого nano, соответствующего vim :cq?

1 ответ1

3

Вот что я могу сделать в интерактивном режиме sh (или bash и т.д.) С управлением заданиями:

Я могу приостановить nano с помощью Ctrl+Z (^Z). Примечание: если сообщение « Suspension is not enabled мне нужно нажать Alt+Z (M-Z), чтобы включить. Насколько я знаю, это стандартные сочетания клавиш в nano .

Если команда была nano || foo то foo будет запущен немедленно.

Теперь я вернулся в оболочку с nano в качестве работы (см. jobs). kill %% отправит ему сигнал, но nano еще не выйдет. Мне нужно после отправки сигнала fg , только тогда nano завершается.

Не так быстро, как vim :cq но все еще без дополнительной сессии SSH.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .