Подтвердить что ты не робот

Вставка текста в emacs на Macintosh

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

4b9b3361

Ответ 1

Попробуйте следующее:

(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

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

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

C-u M-! pbpaste <RET>