Jaki jest odpowiednik vi w emacsie dd? Chcę usunąć bieżącą linię. Wypróbowano CTRL+, kale usuwa tylko z bieżącej pozycji.
122
C-a # Go to beginning of line
C-k # Kill line from current point
Jest również
C-S-backspace # Ctrl-Shift-Backspace
który wywołuje M-x kill-whole-line
.
Jeśli chcesz ustawić inne globalne powiązanie klucza, umieść to w ~ / .emacs:
(global-set-key "\C-cd" 'kill-whole-line) # Sets `C-c d` to `M-x kill-whole-line`
Jeśli chcesz usunąć kilka całych linii, możesz poprzedzić polecenie numerem:
C-u 5 C-S-backspace # deletes 5 whole lines
M-5 C-S-backspace # deletes 5 whole lines
C-u C-S-backspace # delete 4 whole lines. C-u without a number defaults to 4
C-u -5 C-S-backspace # deletes previous 5 whole lines
M--5 C-S-backspace # deletes previous 5 whole lines
Czasami C-x z
pomocny jest również :
C-S-backspace # delete 1 whole line
C-x z # repeat last command
z # repeat last command again.
# Press z as many times as you wish.
# Any other key acts normally, and ends the repeat command.
C-x z
, to naprawdę fajne. A przy okazji miła i precyzyjna odpowiedź.C-k C-k
co działa jakd$ S-j
w vimie, ale może całkiem ładnie usunąć linie do przodu.C-cd
?Jeśli nie chcesz zabijać linii (co spowodowałoby umieszczenie jej w schowku systemu operacyjnego i zabicie pierścienia), ale po prostu ją usuń:
źródło
Inna metoda usunięcia linii bez umieszczania jej w pierścieniu zabijania:
Spowoduje to pozostawienie punktu na początku pustej linii. Aby się tego również pozbyć, możesz chcieć dodać coś takiego
(delete-blank-lines)
na końcu funkcji, jak w tym przykładzie, który jest być może trochę mniej intuicyjny:źródło
Najszybszym / najprostszym sposobem usunięcia (zabicia) pełnego wiersza, z dowolnego punktu w wierszu, bez wybierania czegokolwiek, jest:
Jest wszechstronny w usuwaniu wszystkiego, co jest zaznaczone, lub domyślnie linii, jeśli nic nie jest wybrane.
Biorąc pod uwagę to pytanie, prawdopodobnie jesteś również zainteresowany replikacją "szarpnięcia" Vima
yy
(chociaż w żargonie Emacsa "szarpnięcie" jest myląco "wstawieniem" Vimap
). To jest:Ładne, przystające i łatwe do zapamiętania. Nawet trochę podobny do Vima
i_CTRL-W
.Gdy umieścisz coś w pierścieniu zabijania za pomocą jednego z powyższych, prawdopodobnie będziesz chciał to „wyszarpnąć” (wkleić):
(Zauważ, że CS-backspace może nie działać w terminalowym Emacs.)
źródło
Zamiast mieć oddzielny klucz do usuwania linii lub wywoływać prefiks-argument. Możesz użyć crux-smart-kill-line, która „zabije do końca linii i zabije całą linię przy następnym wywołaniu”. Ale jeśli wolisz
delete
zamiastkill
, możesz użyć poniższego kodu.W przypadku operacji typu punkt-łańcuch (zabij / usuń) zalecam użycie zop-to-char
źródło
źródło