Mam poniższy kod:
Hello
There
I am some code
I chcesz dodać kod przed nim, na przykład:
I said Hello
I said There
I said I am some code
Jak więc dodać prefiks do każdej linii?
text-editing
editing
Luke
źródło
źródło
M-x string-insert-rectangle
. Jest bardzo podobny, alestring-insert-rectangle
wstawia na początku każdej linii zaznaczenia, podczas gdystring-rectangle
zastępuje , więc w tym drugim przypadku musisz być bardziej precyzyjny w wyborze, jeśli nie chcesz niczego zastępować.Możesz użyć trybu wielu kursorów , aby umieścić kursor w każdej linii. Następnie każdy wpisany tekst zostanie wstawiony w każdym wierszu.
Zacząłbyś od punktu na początku fragmentu kodu:
Następnie naciśnij C->dwa razy. (Jest to sugerowane powiązanie klawiszy; musisz je skonfigurować samodzielnie). Spowoduje to utworzenie dwóch dodatkowych kursorów w następujących dwóch wierszach:
Następnie wpisz
I said
. Tekst zostanie dodany w każdym wierszu:Na koniec naciśnij, RETaby wyjść z trybu wielu kursorów i pozostaw punkt na ostatnim kursorze:
Oto wideo, które pokazuje, jak to działa.
źródło
Osobiście wolę
replace-regexp
(zastąp „^” słowem „powiedziałem”).źródło
Inną opcją jest użycie makr, które mogą obsłużyć więcej zadań niż zaznaczenia prostokątne lub wiele kursorów, nawet jeśli jest to nieco bardziej skomplikowane w tym konkretnym przypadku.
Ustaw kursor na początku pierwszego wiersza i naciśnij, F3aby rozpocząć nagrywanie, wstaw tekst, przesuń kursor na początek następnego wiersza i naciśnij, F4aby zatrzymać nagrywanie. Teraz naciśnij F4ponownie, aby powtórzyć makro, C-2 F4powtórzyć je dwukrotnie lub C-0 F4powtórzyć do momentu napotkania błędu (np. Brak linii).
źródło
Możesz zainstalować zło i zrobić to na wiele sposobów podobnych do vi - wolę wizualny wybór bloku za pomocą Ctrl+, Vaby zaznaczyć każdą linię, a następnie Shift+, Iaby wstawić, a następnie wpisać tekst, który chcesz wstawić, a następnie nacisnąć, ESCaby wyjść z trybu wstawiania i tekst zostanie dodany do każdej linii. Jest to bardzo podobne do wyboru prostokąta Emacsa, ale kilka mniej naciśnięć klawiszy.
źródło
Jest to bardzo podobne do odpowiedzi artagnon, ale
replace-regexp
nie jest związane z żadnym kluczem.Tak więc faktycznie używam,
query-replace-regexp
który jest domyślnie związany,C-M-%
a następnie zastępuję^
go podanym prefiksem,I said
a następnie piszę,!
aby zamienić wszystko bez monitowania.źródło
Jeśli
cua-mode
włączyłeś, to:I said
jako tekst do wstawieniaWolę
cua-mode
sposób pracy, niż standardowy prostokąt Emacsa, gdzie odpowiednikiem byłoby:I said
RET wstawić tekstcua-mode
Oszczędza dwóch naciśnięć klawiszy w porównaniu do standardowej Emacs prostokąta.Ale dla mnie dodatkową zaletą trybu cua jest to, że mogę dołączyć tekst do prostokąta (osobiście nie wiem, jak dołączyć tekst ze standardowym prostokątem Emacsa). W trybie cua jest to tylko jedno RETnaciśnięcie klawisza, wprowadzone przed
I said
.źródło