Kiedy uruchamiam Emacsa w terminalu tekstowym zamiast w normalnym trybie GUI, mogę kopiować w Emacsie, aktywując początek regionu za pomocą C-SPC
, a następnie wybierz to, co chcę, a następnie zrób M-w
.
Czy jest jakiś sposób na skopiowanie regionu w ten sposób, aby był dostępny w schowku OSX i wkleić go na stronie internetowej (oczywiście poza uruchomieniem Emacsa w trybie GUI)?
Nie jestem zainteresowany stworzeniem innego skrótu, aby to zrobić i idealnie nie powinno to wymagać instalowania żadnych modułów.
Widziałem ten post i wypróbowałem zaakceptowaną odpowiedź, ale nie działa ona tak, jak oczekuję powyżej.
Jakieś inne pomysły?
osx
copy-paste
Galder Zamarreño
źródło
źródło
Odpowiedzi:
Skopiuj ze schowka Emacsa do OS X:
następnie wybierz region
M-| pbcopy RET
Wklej ze schowka OS X do Emacsa:
C-u M-| pbpaste RET
(zastępuje bieżący region, jeśli istnieje)Wyjaśnienie:
M-|
działashell-command-on-region
, co jak sama nazwa wskazuje potokuje bieżący region do polecenia powłoki.C-u M-|
robi to samo, ale zastępuje bieżący regionstdout
uruchomionym poleceniem.pbcopy
ipbpaste
są narzędziami OS X do uzyskiwania dostępu do schowka systemowego.źródło
Poniższe po prostu działa, skopiowane stąd
źródło
xclip-mode
cierpi na ten sam problem?Jeśli używasz Emacsa „w normalny sposób” (tj. Jako aplikację GUI), powinien już to zrobić domyślnie. Jeśli używasz Emacsa w emulatorze terminali, to rzeczywiście nie wie, jak to zrobić domyślnie, ale możesz zainstalować
xclip
pakiet z GNU ELPA, a następnie włączyć program,xclip-mode
który uczy Emacsa, jak to zrobić zarówno dla GNU / Linux, jak i dla OSX.źródło
xclip
działa z OSX? Z tego, co widziałem, wydaje się, że jest przeznaczony do współpracy z X11, patrz postxclip.el
pakiet został przedłużony do wykorzystaniapbpaste
.M-x report-emacs-bug
?Jak powiedział Stefan, aplikacje graficzne Emacsa powinny to robić domyślnie.
W terminalu tekstowym inną opcją jest użycie takich funkcji:
źródło
Oto prosta funkcja elisp, którą możesz umieścić w pliku .emacs, który kopiuje zawartość bufora, który znajdujesz się do schowka. Nie musisz nic wybierać, to wszystko kopiuje. Kod jest krótki i dość zrozumiały.
źródło
Sprawdź
clipboard-kill-region
iclipboard-yank
. Te pochodzą zmenu-bar.el
.Po podświetleniu regionu możesz użyć schowka-kill-region, aby zabić region zarówno do bufora wklejania, jak i schowka systemowego. clipboard-yank „wkleja” wszystko, co jest aktualnie w schowku systemowym.
źródło
Odpowiedź Galdera Zamarreño jest świetna, jednak łamie złe
put
zachowanie w trybie zła. Dlatego zaadaptowałem to nieco poniżej - jestem pewien, że może być lepiej, ale dla mnie to działa. Możesz zaproponować ulepszenia:----> Nowy kod
źródło