Jak wstawić nowy wiersz w edytorze linii ZSH?


13

Załóżmy, że edytuję pojedynczą linię, a mój kursor znajduje się we wskazanej pozycji:

$ abc  def ghi

Chciałbym teraz podzielić się na dwie linie i kontynuować edycję (tak jak naciśnięcie klawisza ENTER w edytorze tekstu):

$ abc
$  def ghi

Czy można to zrobić w ZSH?


Należy abcwykonać, czy chcesz wstawić \nznak w pozycji kursora?
mpy

Odpowiedzi:


15

W emacstrybie ZLE :

… Znak Control+ V(ASCII SYN) jest powiązany z quoted-insertwidżetem. Więc po prostu wpisz Control+, Va następnie Control+ J(ASCII LF).

W vitrybie ZLE :

… Znaki Control+ Q(ASCII DC1) i Control+ Vsą powiązane z vi-quoted-insertwidżetem. Więc ponownie wpisz Control+ V, a następnie Control+ J.

Zapamiętaj:

Nowe linie w środku linii poleceń oddzielają polecenia. (W terminologii zshpodręcznika: zarówno nowa linia, jak i ;zakończenie listy .) Cytuj nową linię, jeśli nie chcesz.


Byłem w stanie powiązać tryb emacsa z Shift + Enter, aby automatycznie wstawić cytowaną wstawkę. Jednak odkąd przełączyłem się na tryb vim, to nie działa. Czy istnieje sposób, aby działał w trybie vim?
CMCDragonkai

W trybie emacsa możesz także wstawić nową linię za pomocą M-Return.
SilverWolf - Przywróć Monikę

1

Oto sposób „vimmer” w trybie ZLE vi, który nie wymaga ctrlakordów.

jeśli twoja linia wygląda następująco i jesteś w trybie normalnym : $ abc ꕯ def ghi

wpisz to: DoESCp

całkowita liczba naciśnięć klawiszy: 4.

wyjaśnienie:

`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

Użyj ⌥↩︎ ( Option / Alt+ Return) lub ⎋, ↩︎ ( Escnastępnie Return).

bindkey -eDziała to tylko wtedy, gdy zadzwoniłeś wcześniej lub gdzieś w .zshrc.


PS: Działa to również w OS X ! Jeśli naciśniesz ⌥↩︎, powiedzmy, w polu Wiadomości, pojawi się nowa linia. Jednak nie działa w polach komentarzy SE. (:
SilverWolf - Przywróć Monikę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.