
Как сделать возврат и перемещение по кавычкам в zsh?
Нажатие left
или backspace
не приводит к каким-либо действиям в начале цитаты после нажатия Enter после ввода '
:
$ echo '
quote>
Единственный известный мне способ отредактировать текст перед цитатой — нажать control c
, но мне кажется, это не очень удобно.
решение1
Если вы хотите использовать push-line-or-edit
виджет, то вы можете отредактировать всю команду:
push-line-or-edit В приглашении верхнего уровня (PS1) эквивалентно push-line. В приглашении вторичного уровня (PS2) переместить всю текущую многострочную конструкцию в буфер редактора. Последнее эквивалентно push-input с последующим get-line.
Этот виджет по умолчанию не привязан ни к одной клавише, поэтому используйте
bindkey "^[q" push-line-or-edit
чтобы привязать его к ESC-q
. (Эта комбинация клавиш привязана push-line
при использовании сочетаний клавиш emacs, поэтому, если вы используете ее push-line
регулярно, выберите другую комбинацию клавиш.)
Небольшая демонстрация (■ указывает на курсор):
$ bindkey "^[q" нажать-строку-или-изменить $ эхо '[Входить] [ цитата ] ■[ESC-q] $ эхо ' ■[стрелка вверх] $ ■эхо '