¿Puedo configurar emacs
, para poder copiar / cortar texto de emacs (versión de Terminal predeterminada) y pegarlo en otro lugar (en el programa X Window)?
¿Puedo configurar emacs
, para poder copiar / cortar texto de emacs (versión de Terminal predeterminada) y pegarlo en otro lugar (en el programa X Window)?
Para copiar la región actual al portapapeles de OS X, puede utilizar
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
La inversa, no se recomienda copiar el búfer OS X paste al anillo de eliminación de Emacs. Los anillos de matanza y los portapapeles son estructuras muy diferentes y no hay una buena respuesta a lo que, exactamente, debe ser empujar un portapapeles en un anillo de matanza. Aún así, puede ejecutar pbpaste
manualmente para obtener el contenido actual del portapapeles.
Agregue esto a ~/.emacs
:
(defun pbcopy ()
(interactive)
(call-process-region (point) (mark) "pbcopy")
(setq deactivate-mark t))
(defun pbpaste ()
(interactive)
(call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))
(defun pbcut ()
(interactive)
(pbcopy)
(delete-region (region-beginning) (region-end)))
(global-set-key (kbd "C-c c") 'pbcopy)
(global-set-key (kbd "C-c v") 'pbpaste)
(global-set-key (kbd "C-c x") 'pbcut)
Si usa Emacs en iTerm 2, también puede reasignar combinaciones de teclas en las preferencias:
Luegoagregaalgocomoestoa~/.emacs
:
(global-set-key(kbd"<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
Aquí hay una solución para integrar OS X Clipboard al kill-ring de Emacs por Daniel Nelson: enlace
Comentarios del autor:
Permite que el kill-ring interactúe con el portapapeles cuando se ejecuta Emacs desde una terminal Mac OSX (sin perder la funcionalidad completa del kill-ring). Todo lo que hice fue modificar
xclip.el
para trabajar conpbcopy
ypbpaste
. El agradecimiento real es para Leo Shidai Liu, el autor de xclip.el.
Lo siguiente simplemente funciona, lo obtuve desde aquí :)
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx))
La versión de emacs que se incluye con OS X es demasiado antigua para proporcionar esta funcionalidad.
Afortunadamente, puede actualizar emacs a una versión que se integra con su portapapeles aquí: enlace
Creo que utilizas Ctrl + Y para pegar emacs, después de la actualización.
Encontré esta publicación realmente útil (definir 2 funciones y asignar accesos directos a ellos en su archivo ~ / .emacs).
Después de agregar esas líneas a su archivo .emacs, no tendrá acceso a esos accesos directos hasta que abra una nueva sesión de shell (pestaña / ventana). Deja que los cambios se apliquen.
Puede obtener dicha interacción de manera transparente con el portapapeles mientras ejecuta Emacs en el terminal de texto habilitando el xclip-mode
proporcionado por el paquete xclip
que puede instalar desde GNU ELPA (es decir, a través de M-x package-list-packages RET
).
Consulte también enlace para obtener una pregunta y respuestas similares.
Lea otras preguntas en las etiquetas copy-paste emacs