Emacs

2010-06-05 10 views
11

में चल रहे टर्मिनल में यांकिंग टेक्स्ट Ianks में चल रहे टर्मिनल में टेक्स्ट को यंक करने में असमर्थ हूं।Emacs

मैं एक बफर से स्ट्रिंग "तिथि" को मार डाला और एक अन्य बफर और हिट बदले में टर्मिनल में यह yanked:

यह मेरा प्रक्रिया है।

टर्मिनल व्यवहार करता है जैसे मैंने कुछ भी टाइप नहीं किया है। यह सिर्फ प्रॉम्प्ट वापस देता है।

मैं ओएस एक्स 10.5.8 और Emacs 23.1 का उपयोग कर रहा हूँ। मैंने Aquamacs, कार्बन Emacs, और http://emacsformacosx.com/ से रिलीज पर इस प्रक्रिया की कोशिश की है। वे सभी मेरे .emacs फ़ाइल के साथ अपनी डिफ़ॉल्ट कॉन्फ़िगरेशन में भी इस अजीब व्यवहार को दिखाते हैं। संभवतः यह क्या हो सकता है?

उत्तर

14

"टर्मिनल में" मुझे लगता है कि आप का मतलब है कि आप Emacs के अंतर्निहित टर्मिनल एमुलेटर चला रहे हैं। आमतौर पर, टर्मिनल एमुलेटर अधिकांश चाबियों को सटीक रूप से खोलता है जैसे कि खोल प्रक्रिया में टाइप किया जाता है। टर्मिनल बफर में सी-सी सी-जे टाइप करें ताकि इसे एक ऐसे राज्य में रखा जा सके जहां सामान्य Emacs कुंजी बाइंडिंग उपलब्ध हों। आपको (Term: char run) से (Term: line run) पर मोड लाइन परिवर्तन दिखाई देगा।

परिशिष्ट:

yanking पाठ के बिना चार मोड छोड़ने के लिए थोड़ा मुश्किल है, प्रासंगिक कार्य, हालांकि, term-paste (yank नहीं है, जो केवल टर्मिनल बफर में पाठ को अवरुद्ध प्रक्रिया के बिना भेजता है)। term-paste तुरंत निम्न प्रक्रिया को सबसे हालिया मार भेज देगा, लेकिन संभवत: आपके द्वारा उपयोग की जाने वाली फैंसी यांक कार्यक्षमता प्रदान नहीं करता है (जैसे एम-वाई पूर्व किलों के माध्यम से चक्र के लिए)। आप विस्तारित कमांड के रूप में term-paste चला सकते हैं: सी-सी एम-एक्स टर्म-पेस्ट आरईटी

शायद सबसे आसान समाधान जब आप पेस्ट के लिए कुछ है सिर्फ अस्थायी रूप से लाइन मोड (सी सी सी जे) में जाने के लिए, और फिर तुरंत चार मोड (सी सी सी-कश्मीर) में वापस जाने है। या इससे भी आसान, बस हर समय लाइन मोड में रहें। जब मैं टर्मिनल को ओरेकल एसक्यूएल * प्लस सत्र में लॉग इन करता हूं तो मैं अक्सर ऐसा करता हूं। मुझे शायद ही कभी अंतर दिखाई देता है, लेकिन मुझे सुविधाजनक एमएक्स कार्यक्षमता के सभी प्रकार मिलते हैं, जैसे एम-पी टाइप करने में सक्षम होने के कारण, लंबे, पहले टाइप किए गए SQL कथन के माध्यम से चक्र।

मैं मान लिया है कि आप हमेशा इस तरह लाइन मोड में शुरू कर सकते हैं:

(add-hook 'term-mode-hook 'term-line-mode) 

... लेकिन यह मेरे लिए काम नहीं करता। पता नहीं क्यों।

+0

क्या पूरे बफर संपादन योग्य होने के बिना टर्मिनल एमुलेटर को यंक स्वीकार करने का कोई तरीका है? या टर्मिनल एमुलेटर को हमेशा 'लाइन रन' से शुरू करने के लिए कॉन्फ़िगर करने का कोई तरीका है। – hekevintran

+1

सी-सी सी-जे के लिए धन्यवाद। Emacs भयानक है! – Raj

-1

जब सब कुछ विफल हो जाता है तो मैं बस टेक्स्ट को हाइलाइट करता हूं और संपादित करें-> प्रतिलिपि क्लिक करें, फिर अन्य emacs बफर में राइट क्लिक करें और पेस्ट पर क्लिक करें।

+1

पाठ बफर में जाता है, लेकिन वापसी मारना इसे टर्मिनल पर नहीं भेजता है। तो ऐसा लगता है कि जब तक आप कमांड चलाने की कोशिश नहीं करते हैं तब तक सब ठीक है और यह कुछ भी नहीं करता है। – hekevintran

1

टर्मिनल के साथ बफर में, टर्मिनल को लाइन मोड में C-c C-j के साथ रखें। अपने पाठ में पेस्ट करने के लिए, अब S-Insert दबाएं (वह शिफ्ट-सम्मिलित है)। यदि आपको बाद में चार मोड पर जाने के लिए टर्मिनल की आवश्यकता है, तो यह C-c C-k है।