Cuando ejecuto Emacs en un terminal de texto en lugar del modo GUI normal, puedo copiar en Emacs activando el inicio de una región con C-SPC
, y luego seleccionar lo que quiero y luego hacer M-w
.
¿Hay alguna forma de que una región copiada de esta manera esté disponible en el portapapeles OSX para pegarla, por ejemplo, en una página web (aparte de ejecutar Emacs en su modo GUI, obviamente)?
No estoy interesado en crear un acceso directo diferente para hacerlo, e idealmente no debería requerir la instalación de ningún módulo.
He visto esta publicación y probé la respuesta aceptada, pero parece que no funciona de la manera que esperaba arriba.
¿Alguna otra idea?
osx
copy-paste
Galder Zamarreño
fuente
fuente
Respuestas:
Copie de Emacs al portapapeles OS X:
seleccione región entonces
M-| pbcopy RET
Pegar desde el portapapeles OS X a Emacs:
C-u M-| pbpaste RET
(reemplaza la región actual si existe)Explicación:
M-|
se ejecutashell-command-on-region
, lo que como su nombre implica canaliza la región actual a un comando de shell.C-u M-|
hace lo mismo, pero reemplaza la región actual con lastdout
del comando que se está ejecutando.pbcopy
ypbpaste
son utilidades de OS X para acceder al portapapeles del sistema.fuente
Lo siguiente simplemente funciona, copiado desde aquí
fuente
xclip-mode
sufre el mismo problema?Si usa Emacs "de la manera normal" (es decir, como una aplicación GUI), entonces ya debería hacerlo de forma predeterminada. Si usa Emacs dentro de un emulador de terminal, entonces no sabe cómo hacerlo de manera predeterminada, pero puede instalar el
xclip
paquete desde GNU ELPA y luego habilitar elxclip-mode
que le enseña a Emacs cómo hacerlo tanto para GNU / Linux como para OSXfuente
xclip
Funciona con OSX? Por lo que he visto por ahí, parece estar diseñado para funcionar con X11, ver postxclip.el
paquete ha sido extendido para su usopbpaste
.M-x report-emacs-bug
?)Como dijo Stefan, las aplicaciones gráficas de Emacs deberían hacerlo por defecto.
En una terminal de texto, otra opción es usar funciones como esta:
fuente
Aquí hay una función simple de elisp que puede poner en su archivo .emacs que copia el contenido del búfer en el que se encuentra en el portapapeles. No tiene que seleccionar nada, lo copia todo. El código es corto y bastante claro.
fuente
Echa un vistazo
clipboard-kill-region
yclipboard-yank
. Estos provienen demenu-bar.el
.Una vez que se resalta una región, puede usar el portapapeles-kill-region para matar la región tanto al búfer de pegado como al portapapeles del sistema. clipboard-yank "pega" lo que esté actualmente en el portapapeles del sistema.
fuente
La respuesta de Galder Zamarreño es genial, sin embargo, rompe el
put
comportamiento maligno en modo maligno. Por lo tanto, lo he adaptado un poco más abajo: estoy seguro de que podría ser mejor, pero hace el trabajo por mí. Siéntase libre de sugerir mejoras:----> Nuevo código
fuente