редактирования GNU Readline является дурацким в разы. В ситуации, когда вы случайно попали Введите в середине строки с кавычками в Bash, просто нажмите Ctrl-C. Часть командной строки до последнего Ввод сохраняется в истории. Вы просто теряете самую последнюю строку: все, что вы ввели с последнего Введите. После этого Ctrl-C вы можете вызвать строку и отредактировать ее. На этот раз вы можете переместить курсор обратно по кавычки: вы можете переместить ненужные многострочные части, чтобы объединить их в одну строку.
$ echo "abc
> oops hit Enter, didn't mean to
> oops, I did it again!^C
Теперь стрелка вверх:
$ echo "abc
oops hit Enter, didn't mean to_ <- cursor is here (lost the last line)
^
`- no > characters here now, and you can move the cursor left
to just before the "oops" and hit backspace to merge it with
the "abc.
Это не понятно, почему Readline настолько противоречивы таким образом: почему есть >
режим для продолжения линии, но затем нормальное редактирование, когда вы помните, что ; возможно, есть способ отладить эту недружественную глупость >
. Я думаю, что он существует для новичков: подсказка >
- это громкий и понятный сигнал, указывающий «эй, у тебя несбалансированная цитата или что-то еще, и поэтому я предлагаю вам больше ввода». Тем не менее, это не повод не позволять пользователю, по крайней мере, отставать от >
.
В любом случае, в этой ситуации вы всегда можете просто выполнить коммите с непреднамеренным сообщением, а затем сразу же сделать
$ git commit --amend -m "corect message" # oops
$ git commit --amend -m "correc message" # darn
$ git commit --amend -m "correct message!"
И наконец, получить клавиатуру, которая не имеет крошечную клавишу возврата и огромный ключ Enter под ним! Эти идиотские клавиатуры - основная причина, по которой вы случайно нажмете Enter: именно тогда, когда вы хотите отступить, чтобы исправить что-то неправильное. Представьте, если бы педали газа были рядом с тормозом!
С чем вы редактируете сообщение? –
@AdamSchiavone Я использую Git Bash. – Fritz
Лично, когда это случается со мной, я просто иду с ним, а затем делаю 'git commit -amend', чтобы исправить сообщение. – Mchl