Mac OS X क्लिपबोर्ड पर टेक्स्ट को काटने और कॉपी करने के लिए emacs को कॉन्फ़िगर करें


16

क्या मैं कॉन्फ़िगर कर सकता हूं emacs, ताकि मैं इमैक (डिफ़ॉल्ट टर्मिनल संस्करण) से पाठ को कॉपी / कट कर सकूं और इसे कहीं और (एक्स विंडो प्रोग्राम में) पेस्ट कर सकूं?


नाइटपिक: आप "डिफ़ॉल्ट टर्मिनल संस्करण" कहते हैं, लेकिन एमएसीएस के लिए कामकाज का डिफ़ॉल्ट मोड टेक्स्ट टर्मिनल के बजाय जीयूआई का उपयोग करना है। शायद आप प्राचीन /usr/bin/emacsनिष्पादन योग्य का उल्लेख कर रहे हैं जो Apple द्वारा OSX के साथ बंडल किया गया है और जो मनमाने ढंग से पाठ टर्मिनल तक सीमित है?
स्टीफन

जवाबों:


4

वर्तमान क्षेत्र को OS X क्लिपबोर्ड पर कॉपी करने के लिए, आप उपयोग कर सकते हैं

(shell-command-on-region (region-beginning) (region-end) "pbcopy")

उलटा, ओएस एक्स पेस्ट बफर को इमैक किल रिंग में कॉपी करते हुए अनुशंसित नहीं है। किल रिंग और क्लिपबोर्ड बहुत अलग संरचनाएं हैं और क्या, क्या वास्तव में, एक क्लिपबोर्ड को मारने की अंगूठी में धकेलना चाहिए इसका कोई अच्छा जवाब नहीं है। फिर भी, आप pbpasteवर्तमान क्लिपबोर्ड सामग्री प्राप्त करने के लिए मैन्युअल रूप से चला सकते हैं।


यह मेरे लिए काम नहीं किया। इस Emacs पोस्ट में चिह्नित समाधान हालांकि काम करता है।
गेल्डर ज़ामरेनो 16

8

इसे इसमें जोड़ें ~/.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)

यदि आप iTerm 2 में Emacs का उपयोग करते हैं, तो आप वरीयताओं में प्रमुख संयोजनों को भी हटा सकते हैं:

फिर कुछ इस तरह से जोड़ें ~/.emacs:

(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)

फिर भी सबसे अच्छा जवाब। धन्यवाद! इटर्म के लिए ध्यान दें, इन "क्रियाओं" को बनाने के लिए "एस्केप कोड भेजें" चुनें, और आप अग्रणी "^ [" को छोड़ दें। ("पाठ भेजें" क्रिया प्रकार के साथ काम नहीं किया)
Jay

3

यहाँ डैनियल नेल्सन द्वारा OS X क्लिपबोर्ड को Emacs की किल-रिंग को एकीकृत करने का एक समाधान है: https://github.com/wesen/emacs/blob/master/pbcopy.el

लेखक की टिप्पणियाँ:

मैक OSX टर्मिनल से Emacs चलाते समय क्लिपबोर्ड के साथ इंटरैक्ट करने के लिए किल-रिंग को सक्षम करता है (पूर्ण किल-रिंग कार्यक्षमता को खोए बिना)। सभी मैंने किया था संशोधित था xclip.elके साथ काम करने के लिए pbcopyऔर pbpaste। असली धन्यवाद xclip.el के लेखक लियो शिदाई लियू पर जाएं।


1

निम्नलिखित सिर्फ काम करता है, इसे यहाँ से मिला :)

(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))

क्या आप मूल पोस्ट का लिंक जोड़ सकते हैं?
विंसेंट

0

OS X के साथ शामिल Emacs का संस्करण इस कार्यक्षमता को प्रदान करने के लिए बहुत पुराना है।

सौभाग्य से आप emacs को एक ऐसे संस्करण में अपडेट कर सकते हैं जो आपके क्लिपबोर्ड के साथ एकीकृत है: http://emacsformacosx.com

मेरा मानना ​​है कि आप अपडेट के बाद emacs में पेस्ट करने के लिए Ctrl+ Yका उपयोग करते हैं।


आह - मैं यह कहना भूल गया - एमएसीएस का संस्करण जो आप उस साइट से डाउनलोड करेंगे वह चित्रमय है (अर्थात यह टर्मिनल में नहीं चलता है)। बिना किसी हैक के क्लिपबोर्ड तक पहुंचने के लिए टर्मिनल में आवेदन करना असंभव है, जो मुझे अब नहीं मिल सकता है। : /
फ़ैज़ सलीम

2
pbcopyऔर pbpasteअभी भी मौजूद हैं और हैक नहीं हैं।

यह संभव है, हालाँकि मैंने यह मान लिया था कि ओपी कॉपी और पेस्ट करने के लिए कीबोर्ड कमांड का उपयोग करना चाहता है। मेरे कहने का तात्पर्य यह था कि टर्मिनल एप्लिकेशन बिना हैक्स के OS X क्लिपबोर्ड के साथ कॉपी और पेस्ट करने के लिए कीबोर्ड शॉर्टकट का उपयोग नहीं कर सकते।
फैज़ सलीम

"टर्मिनल एप्लिकेशन बिना हैक्स के ओएस एक्स क्लिपबोर्ड के साथ कॉपी और पेस्ट करने के लिए कीबोर्ड शॉर्टकट का उपयोग नहीं कर सकते हैं।" यह स्पष्ट रूप से सच नहीं है, क्योंकि pbcopyऔर pbpasteदोनों टर्मिनल अनुप्रयोग हैं; कोई भी अन्य टर्मिनल ऐप वे क्या कर सकता है, या सीधे उन्हें कॉल कर सकता है।

क्या मैं देख रहा था pbcopyEmacs कट और कॉपी के लिए कांटे की शकल है। क्या यह संभव है?
सिंटगमा

0

मुझे यह पोस्ट वास्तव में उपयोगी लगी (2 कार्यों को परिभाषित करना और आपकी ~ / .emacs फ़ाइल में उन्हें शॉर्टकट असाइन करना)।

अपनी .emacs फ़ाइल में उन पंक्तियों को जोड़ने के बाद, जब तक आप एक नया शेल सत्र (टैब / विंडो) नहीं खोलते, आपके पास उन शॉर्टकट तक पहुँच नहीं होगी। परिवर्तन लागू होने दें।


0

आप टेक्स्ट टर्मिनल में Emacs xclip-modeको xclipपैकेज द्वारा उपलब्ध कराकर सक्षम करते हुए क्लिपबोर्ड के साथ इस तरह की बातचीत को पारदर्शी रूप से प्राप्त कर सकते हैं जिसे आप GNU ELPA (यानी के माध्यम से M-x package-list-packages RET) से इंस्टॉल कर सकते हैं ।

इसी तरह के सवाल और जवाब के लिए /emacs/10900/ भी देखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.