2009-06-12 10 views
25

जब मैं ब्राउजर से एमाक्स में कुछ कोड पेस्ट करने की कोशिश कर रहा हूं, तो यह कोड स्वचालित रूप से इंडेंट करेगा, क्या इमाक्स को जैसे अस्थायी रूप से इंडेंट करने से रोकने का कोई तरीका है: vim में पेस्ट सेट करें?कोई भी Emacs कमांड जैसे पेस्ट-मोड vim में?

+5

क्या आप टर्मिनल में चिपक रहे हैं? ऐसा नहीं होना चाहिए यदि आप जीयूआई इमाक्स में चिपक रहे हैं जो पेस्ट को "सीधे" प्राप्त करता है; जब आप टर्मिनल में चिपकते हैं तो यह प्रभावी रूप से उन सभी पात्रों को एक-एक करके टाइप करना पसंद करता है। – ShreevatsaR

+1

क्या यह सभी मोड/बफर में होता है? या बस कुछ? क्या आपने Emacs में चिपकाने का प्रयास किया है जब आप emacs को अपने अनुकूलन (ala 'emacs -q') से बाहर करते हैं? –

+0

'पेस्ट' के बारे में नहीं पता था-धन्यवाद! – andrewdotn

उत्तर

23

emacs24 साथ सबसे आसान तरीका है:

M-x electric-indent-mode RET 

कि ऑटो खरोज अक्षम करता है।

अपनी बात पेस्ट करें।

renable

M-x electric-indent-mode RET 

या बस M-x UP-Arrow ;-)

+0

के माध्यम से बदलें, मुझे एक हुक जोड़ने में सक्षम होना अच्छा लगेगा ताकि जब मैं पेस्ट करता हूं, तो यह स्वचालित रूप से अक्षम हो जाता है और फिर पुनः सक्षम किया जाता है। किसी के पास कोई विचार है? – ohruunuruus

+0

मुझे लगता है कि आप अपनी खुद की कुंजी बाध्यकारी सीसी को ओवरराइड कर सकते हैं और ऐसा करने वाले फ़ंक्शन को कॉल कर सकते हैं, सीयूए या अन्य https://www.emacswiki.org/emacs/CuaMode – Maresh

-1

आप

c-toggle-syntactic-indentation 
+0

सी-टॉगल-सिनेटिक-इंडेंटेशन – PanCrit

+0

टाइपो को पकड़ने के लिए धन्यवाद। फिक्स्ड। – mamboking

13

*scratch* बफर में स्विच (या बस कुछ अस्तित्वहीन बफर की कोशिश कर सकते हैं, यह मौलिक मोड में हो जाएगा, जो किसी भी autoindentation ऐसा नहीं करना चाहिए जब तक कि आप किसी भी तरह से कॉन्फ़िगर किया है कि ऐसा करना), क्षेत्र शुरू करने के लिए C-SPC टाइप करें, अपना टेक्स्ट पेस्ट करें, Emacs के भीतर इसे काटने के लिए C-w टाइप करें, अपने मूल बफर पर वापस स्विच करें, पेस्ट करने के लिए C-y टाइप करें।

+0

यह एक अच्छा कामकाज है, हालांकि * बिल्कुल * एक ही चीज़ नहीं है। उदाहरण के लिए, मुझे लगता है कि यह अभी भी मेल नहीं खाते हैं, जब पाठ में पेस्ट करते हैं (एक टर्मिनल-आधारित Emacs उदाहरण में) जिसमें स्माइली होती है। (':)') यह अच्छा होगा कि किसी प्रकार का "मोड" (उस शब्द का उपयोग बहुत कम हो) जो कि ऐसी सभी चीजों को बंद कर देता है (क्योंकि वे पेस्टिंग को लंबे समय तक ले सकते हैं, अगर यह एक बड़ा हिस्सा है पाठ)। फिर भी, यह कुछ पहलुओं के आसपास आता है, कम से कम - और स्पष्ट रूप से मूल पूछताछ की मुख्य समस्या हल करता है। – lindes

+0

यह बहुत सारे इनपुट के लिए काम नहीं करता है। जब आप विंडोज़/डॉस एन्कोडेड टेक्स्ट पेस्ट करते हैं, तो \ r \ n एक टैब की उपस्थिति को मजबूर करता है। यदि आप कर सकते हैं तो यूनिक्स लाइन एंडिंग पर विंडो पर फ़ाइल को स्विच करें, और यह – easytiger

+0

रोकता है स्क्रैच बफर में चिपकने से मेरे लिए सभी इंडेंटेशन हटा दिया जाता है। मैं उस इंडेंटेशन को संरक्षित करना चाहता हूं जो मूल रूप से कॉपी किए गए टेक्स्ट में था। समाधान जो विद्युत-इंडेंट-मोड को अक्षम करता है। – ishmael

3

अजगर के लिए एक त्वरित समाधान का एक """ ... """ ब्लॉक में चिपकाने के लिए है।

2

पहले से जुड़ा हुआ झटका आदेश सी-यूसी-y खरोज के बिना झटका होगा। Emacs 25 के साथ काम करता है।

+0

से पेस्ट को कॉल कर सकते हैं @ मेरी खुशी ने मेरी टिप्पणी की, मैंने इसका जवाब दिया। – 4e6

संबंधित मुद्दे