Вставка текста в emacs на Macintosh - PullRequest
11 голосов
/ 18 октября 2010

Я на Macintosh и использую "терминал" для моей оболочки.Когда я копирую текст из любого окна (посредством перетаскивания мышью, затем меню правой кнопки мыши -> копировать), а затем вставляю текст (правая кнопка мыши -> вставка) в терминал с запущенным emacs, он не действует как вставка.Вместо этого, это как ввод или ввод текста.Проблема возникает, когда текст с отступом.Вдобавок к этому Emacs делает авто-отступ, так что я получаю каскадный вид текста, похожий на лестницу.Я просто хочу, чтобы это была настоящая «вставка», чтобы все, что было скопировано, отображалось именно так, как было.Любые идеи о том, как изменить что-то, чтобы заставить это работать?

Ответы [ 2 ]

18 голосов
/ 19 октября 2010

Попробуйте:

(defun pt-pbpaste ()
  "Paste data from pasteboard."
  (interactive)
  (shell-command-on-region
   (point)
   (if mark-active (mark) (point))
   "pbpaste" nil t))

(defun pt-pbcopy ()
  "Copy region to pasteboard."
  (interactive)
  (print (mark))
  (when mark-active
    (shell-command-on-region
     (point) (mark) "pbcopy")
    (kill-buffer "*Shell Command Output*")))

(global-set-key [?\C-x ?\C-y] 'pt-pbpaste)
(global-set-key [?\C-x ?\M-w] 'pt-pbcopy)

Используйте C-x C-y для вставки и C-x M-w для копирования.

2 голосов
/ 20 ноября 2014

Для быстрого и грязного решения, которое не требует настройки пользовательских команд, вы можете запустить shell-command с аргументом префикса, чтобы вставить результаты вызова pbpaste в текущий буфер.

Таким образом:

C-u M-! pbpaste <RET>
...