Często zdarza mi się, że kopiuję fragment kodu do schowka mojego systemu operacyjnego z Internetu. Następnie wykonuję następujące proste kroki:
- Przejdź do mojego okna Emacsa
- Znajdź miejsce, w którym chcę wkleić kod
- Użyj
C-y
(yank
), aby wstawić skopiowany tekst.
Jednak czasami stwierdzam (ku mojemu wielkiemu rozczarowaniu), że nieświadomie użyłem jakiejś formy polecenia zabicia (takiego jak kill-word
lub kill-line
), gdy byłem w kroku 2. W takich przypadkach skopiowany tekst ze „schowka” nigdy nie trafia w zabójstwo pierścień.
Czy istnieje sposób, aby upewnić się, że skopiowany tekst z innych aplikacji zawsze trafia do mojego pierścienia zabijania?
Najczęściej pracuję w systemie Linux, ale regularnie używam Emacsa w systemach Windows i Mac OS X, więc preferowana jest odpowiedź na system operacyjny.
copy-paste
clipboard
nispio
źródło
źródło
Odpowiedzi:
Musisz dostosować
save-interprogram-paste-before-kill
dot
. Spowoduje to przesunięcie schowka do zabójstwa na wypadek, gdybyś zabił coś emacsem przed wklejeniem schowka. Powiązane dostosowanie polega nayank-pop-change-selection
tym, że popycha twój obecny szarpnięcie emacsem do schowka. Aby oba z nich działały, musiszx-select-enable-clipboard
( domyślnie zastąpiony przezgui-select-enable-clipboard
emacs 25.1)t
.Domyślnie jest to wyłączone, aby zapobiec przypadkowemu wypchnięciu dużej ilości danych na zabijanie, które trwa przez całą sesję, w przeciwieństwie do schowka, który można łatwo wymienić.
źródło
save-interprogram-paste-before-kill
wydaje się robić dokładnie to, co chcę!gui-select-enable-clipboard
nazywa się po prostuselect-enable-clipboard
.innym rozwiązaniem jest użycie narzędzia cli, jeśli to możliwe,
pbcopy / pbpaste na Macu
getclip / putclip na Cygwin
Zaletą tego rozwiązania jest to, że schowek jest zawsze użyteczny (na przykład przy zdalnym ssh).
Moja odpowiedź składa się z dwóch części. część pierwsza przedstawia przydatne narzędzia do manipulowania schowkiem. część druga odpowie na twoje pierwotne pytanie (schowaj do schowka).
CZĘŚĆ PIERWSZA
Wstaw poniższy kod do ~ / .emacs:
CZĘŚĆ DRUGA
wstaw poniższy kod do ~ / .emacs i odtąd użyj „Mx paste-from-clipboard-and-cc-kill-ring”, aby wkleić:
źródło