W Vimie możesz nacisnąć, .
aby powtórzyć ostatnią zmianę, w tym wstawienie tekstu.
Podczas gdy w Emacs C-x
z
powtarza tylko ostatnie polecenie. Wiem, że można tutaj używać makr, ale częściej niż zdaję sobie sprawę, że muszę zbyt późno wstawiać ten sam tekst. Kiedy muszę ponownie wstawić go tylko raz , zdefiniowanie makra jest wtedy bezcelowe.
P: Czy istnieje sposób na powtórzenie wstawiania tekstu w Emacsie?
text-editing
ooi
źródło
źródło
C-f
wyszukiwania itp.)? Jeśli ma to jakiś sens ...C-space
przesuń kursor,M-w
aby skopiować), a następnieC-y
wklej tyle razy, ile potrzeba.Odpowiedzi:
dot-mode
to „mniejszy tryb powtarzania pisania lub poleceń” i może robić to, czego potrzebujesz. Zasadniczo po prostu powtarza ostatnie wstawienia / usunięcia. Jest bardzo podobny do.
Vi (m).źródło
dot-mode
robi i jak zapewnia funkcjonalność, którą OP chce uzyskać?Możesz do tego użyć
kmacro-edit-lossage
(C-x C-k l
): pozwala wyświetlić 300 ostatnich naciśnięć klawiszy (w tym proste wstawienia) i edytować je jako makro.Dla prostego użycia wystarczy zlokalizować początek wstawiania, który chcesz powtórzyć, usunąć cały tekst z „Makro:” do tego miejsca i nacisnąć
C-c C-c
. Teraz masz makro, którego możesz użyć do wykonania tych samych czynności, jakbyś nie zapomniał go najpierw nagrać.Niestety nie powiedzie się to, jeśli ostatnie 300 naciśnięć klawiszy obejmuje kliknięcia myszą.
Edycja: Poniższy kod zmienia go tak, że zachowane są tylko klucze po ostatnim zdarzeniu myszy.
źródło
edmacro-fix-menu-commands
. Przyjmuje opcjonalny argument, który może ignorować zdarzenia myszy. Ale nie wiem wystarczająco dużo o systemie porad, aby go uruchomić.Myślę, że
dabbrev-expand
funkcja może załatwić sprawę. Załóżmy, że już wpisałeś kilka słów: emacs, emocje, emoji, ... Następnym razem, gdy wpiszesz słowo zaczynające się od „em”, możesz nacisnąć,M-/
a emacs zaproponuje Ci wstawienie jednego z już wstawionych słów zaczynając od „em”. Wciąż uderzaj,M-/
a emacs pokaże Ci „emoji”, potem „emocje, a potem ...Możesz także zajrzeć do polecenia repeat-complex-complex . Popularnym przykładem jest: chcesz powtórzyć polecenie
query-replace
w wielu różnych buforach, zawsze używając tych samych argumentów, zamień „pitt” na „patt”.Uruchom go raz, przejdź do innego okna i wpisz,
C-x ESC ESC
aby uruchomić ponownie.I na koniec, czy mogę zasugerować powtórzenie ? Ten plik el pomoże ci wstawiać, używając pewnego rodzaju logiki. To jest bardziej jak „powtórz ostatnie wstawianie, ale dla każdej iteracji argumenty się zmienią.
Ten przykład można znaleźć w pliku el :
Mam nadzieję, że to pomoże.
źródło
repeat
(o której wspomina OP), nie jest tak naprawdę przydatna do wstawiania tekstu.Repeat-insert
należy pomyśleć przed wstawieniem tekstu, podobnie jak makro. Aledabbrev-expand
to fajny pomysł!