Як у редактор рядків ZSH вставити новий рядок?


13

Скажімо, я редагую єдиний рядок із курсором у зазначеній позиції:

$ abc  def ghi

Тепер я хотів би розділитись на два рядки та продовжити редагування (як, наприклад, натискання клавіші ENTER робиться в текстовому редакторі):

$ abc
$  def ghi

Чи є спосіб це зробити в ZSH?


Чи abcслід виконати або ви хочете вставити \nсимвол у позицію курсору?
mpy

Відповіді:


15

У 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.
SilverWolf - Відновіть Моніку

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. (:
SilverWolf - Відновіть Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.