Używanie Crtl + Backspace lub Ctrl + Del dodaje usunięty tekst do pierścienia zabijania.
Jak mogę temu zapobiec? Nie muszę wysyłać każdego fragmentu tekstu do pierścienia zabijania, gdy zostanie usunięty.
Pytanie poboczne: Jaki jest cel tego ustawienia domyślnego? :)
undo
. Ale zgaduję.Odpowiedzi:
Zgodnie z dokumentacją:
Teraz przejrzyjmy kod źródłowy:
Następnie w dokumentacji
kill-region
funkcji znajdujemy:Teraz, jeśli chcesz pójść dalej, możesz użyć tej funkcji do usuwania bez kopiowania do kill-ring:
Dzięki uprzejmości ErgoEmacs
źródło
Ponieważ Emacs 24, bez żadnej konfiguracji, możesz usunąć dowolny tekst bez dodawania go do pierścienia zabijania, zaznaczając go, a następnie naciskając Backspacelub Delete. Gdy znacznik jest aktywny, klawisze te usuwają region, a nie tylko usuwają znak przed / za kursorem.
Oznacza to, że przejdź do jednego końca tekstu, który chcesz usunąć, naciśnij Ctrl+ Space, przejdź do drugiego końca i naciśnij Backspace(lub Delete), aby usunąć podświetlony region. Lub przejdź do jednego końca, przytrzymaj, Shiftgdy używasz klawiszy ruchu, aby przejść do drugiego końca i naciśnij Backspace.
źródło
Miałem ten sam problem i rozwiązałem go łatwiej w ten sposób:
Wywołanie
(backward-delete-char-untabify 1 nil)
mówi Emacsowi, aby usunął do tyłu jeden znak (to jest1
parametr) i powstrzymuje się od kopiowania na pierścień (to jestnil
parametr). Potrzebujesz funkcji lambda (anonimowej), ponieważ wiążesz funkcję z parametrami do klucza.źródło