В редакторе строк ZSH, как вставить новую строку?


13

Скажем, я редактирую одну строку с моим курсором в указанной позиции:

$ abc  def ghi

Теперь я хотел бы разбить его на две строки и продолжить редактирование (как при нажатии клавиши ВВОД в текстовом редакторе):

$ abc
$  def ghi

Есть ли способ сделать это в ZSH?


Должен abcбыть выполнен или вы хотите вставить \nсимвол в позиции курсора?
mpy

Ответы:


14

В emacsрежиме ZLE :

... символ Control+ V(ASCII SYN) привязан к quoted-insertвиджету. Просто введите Control+, Vзатем Control+ J(ASCII LF).

В viрежиме ZLE :

… Символы Control+ Q(ASCII DC1) и Control+ Vсвязаны с vi-quoted-insertвиджетом. Итак, снова просто введите Control+ V, а затем Control+ J.

Помнить:

Новые строки в середине командной строки разделяют команды. (В терминологии zshруководства: и перевод строки, и ;завершение списка .) Цитируйте перевод строки, если вы этого не хотите.


Мне удалось связать режим emacs с Shift + Enter, чтобы автоматически вставить цитируемую вставку. Однако, поскольку я перешел в режим vim, он не работает. Есть ли способ заставить его работать в режиме vim?
CMCDragonkai

В режиме emacs вы также можете вставить новую строку с помощью M-Return.
Серебряный Волк - Восстановить Монику

1

Вот "vimmer" способ в ZLE vi-mode, который не включает ctrlаккорды.

если ваша строка выглядит следующим образом, и вы находитесь в обычном режиме: $ abc ꕯ def ghi

введите это: DoESCp

Всего нажатий клавиш: 4.

объяснение:

`D` cuts from cursor to the end of the line and places cut string in register
`o`opens a new line places the cursor in it, and switches to insert mode
`<esc>` switches to normal pode
`p` paste register content.

1

Используйте ⌥↩︎ ( Option / Alt+ Return) или ⎋, ↩︎ ( Escзатем Return).

Это будет работать, только если вы звонили bindkey -eранее или где-то в вашем .zshrc.


PS: это также работает в OS X ! Если вы нажмете ⌥↩︎, скажем, в окне «Сообщения», вы получите новую строку. Не работает в окнах комментариев SE, хотя. (:
Серебряный Волк - Восстановить Монику
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.