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