Когда я запускаю Emacs в текстовом терминале вместо обычного режима графического интерфейса, я могу скопировать в Emacs, активировав начало области с помощью C-SPC
, а затем выбрать то, что я хочу, и затем сделать M-w
.
Есть ли какой-нибудь способ получить регион, скопированный таким образом, который будет доступен в буфере обмена OSX, чтобы вставить его, скажем, на веб-страницу (очевидно, кроме запуска Emacs в режиме графического интерфейса)?
Я не заинтересован в создании другого ярлыка для этого, и в идеале для этого не нужно устанавливать какие-либо модули.
Я видел этот пост и попробовал принятый ответ, но он не работает, кажется, работает так, как я ожидал выше.
Есть еще идеи?
osx
copy-paste
Галдер Замарреньо
источник
источник
Ответы:
Скопируйте из Emacs в буфер обмена OS X:
затем выберите регион
M-| pbcopy RET
Вставить из буфера обмена OS X в Emacs:
C-u M-| pbpaste RET
(заменяет текущий регион, если он существует)Объяснение:
M-|
runshell-command-on-region
, который, как следует из названия, передает текущую область в команду оболочки.C-u M-|
делает то же самое, но заменяет текущую областьstdout
командой запуска.pbcopy
иpbpaste
утилиты OS X для доступа к системному буферу обмена.источник
Следующее просто работает, скопировано отсюда
источник
xclip-mode
страдает от той же проблемы?Если вы используете Emacs «обычным способом» (то есть как приложение с графическим интерфейсом), то он должен сделать это по умолчанию. Если вы используете Emacs внутри эмулятора терминала, то он действительно не знает, как это сделать по умолчанию, но вы можете установить
xclip
пакет из GNU ELPA и затем включить тот,xclip-mode
который учит Emacs, как это делать как для GNU / Linux, так и для OSX.источник
xclip
с OSX? Из того, что я видел там, похоже, что он предназначен для работы с X11, см. Постxclip.el
пакет был расширен для использованияpbpaste
.M-x report-emacs-bug
?Как сказал Стефан, графические приложения Emacs должны делать это по умолчанию.
В текстовом терминале другой вариант заключается в использовании таких функций:
источник
Вот простая функция elisp, которую вы можете поместить в свой файл .emacs, который копирует содержимое буфера, в котором вы находитесь, в буфер обмена. Вам не нужно ничего выбирать, он копирует все это. Код короткий и довольно понятный.
источник
Проверьте
clipboard-kill-region
иclipboard-yank
. Они приходят изmenu-bar.el
.Как только область выделена, вы можете использовать clipboard-kill-region для уничтожения области как в буфер вставки, так и в системный буфер обмена. clipboard-yank "вставляет" все, что в данный момент находится в системном буфере обмена.
источник
Ответ Галдера Замарреньо велик, однако он нарушает
put
поведение, подобное злу, в режиме зла. Поэтому я адаптировал это немного ниже - я уверен, что это могло бы быть лучше, но это делает работу для меня. Не стесняйтесь предлагать улучшения:----> Новый код
источник