कीबोर्ड मैक्रो में अगली पंक्ति को कैसे संभालें?


12

मैंने एक बफर का उपयोग करके लाइनों में शामिल होने के लिए एक कीबोर्ड मैक्रो बनाया:

F3 C-n M-x join-line RET F4

यह ठीक काम करता है, सिवाय इसके कि जब लाइनें बहुत लंबी हो जाएं और लपेटना शुरू करें - जो इस मैक्रो को फ्रेम की चौड़ाई पर निर्भर करता है। next-lineअगली वास्तविक लाइन पर जाने के लिए प्रतीत नहीं होता है, लेकिन वर्तमान लाइन के "रैपिंग" भाग में।

उस मुद्दे को कैसे सुलझाएं?

जवाबों:


13

आपके पास दो तीन विकल्प हैं:

  1. मैक्रो को परिभाषित करने के next-logical-lineबजाय उपयोग करें next-line:

    कर्सर को लंबवत नीचे की ओर ले जाएं ARG। यह समान है next-line, सिवाय इसके कि यह हमेशा दृश्य लाइनों के बजाय तार्किक लाइनों द्वारा चलता है, चर के मूल्य को अनदेखा करता है line-move-visual

  2. इस पर सेट line-move-visualकरें nil:

    (setq line-move-visual nil)

    यह डिफ़ॉल्ट रूप से next-lineव्यवहार करता है next-logical-line

  3. लाइन ट्रंकेशन को ऑन करके करें

    M-x toggle-truncate-lines RET

    मैक्रो रिकॉर्ड करने से पहले।


उत्तम! धन्यवाद। मुझे आश्चर्य है कि आप किस स्थिति में next-lineमौजूदा व्यवहार को पसंद करेंगे next-logical-line, हालांकि ...
सेबास्टियन ले कॉलनेक

@ SébastienLeCallonnec मुझे लगता है कि हर चीज के लिए एक उपयोग मामला है ... और यह जानना अच्छा है कि Emacs उन सभी को संभालता है;)
itsjeyd

1
@ SébastienLeCallonnec Erm ... प्राकृतिक भाषा में लिखते समय? एक गैर-लाइन-उन्मुख स्थिति में, आमतौर पर आपको एक रेखा से नीचे जाने के लिए दबाव डालने <down>या C-nअपेक्षा की जाती है, लाइन सीमा से आगे नहीं कूदें। यह सोचें कि प्रत्येक उपयोगकर्ता नोटपैड से नहीं आता है (जहां कोई लाइन रैपिंग नहीं होती है, बिल्कुल) ... इमो, अपवाद बल्कि ऐसी परिस्थितियां हैं जहां next-logical-lineअपेक्षित व्यवहार होता है, और इन स्थितियों में, मैं अक्सर visual-line-modeपूरी तरह से अक्षम कर देता हूं । और +1 @ @jjeyd, स्थिति के आधार पर व्यवहार को प्राप्त करने में सक्षम होना वास्तव में अच्छा है।
टी। वेरॉन

2
@ T.Verron मेला काफी। मुझे लगता है कि मैं हमेशा rebind कर सकते हैं C-nकरने के लिए next-logical-line। ;)
सेबेस्टियन ले कॉलॉनेक

0

C-aऔर C-eदोनों एक उपसर्ग तर्क लेते हैं जो आपको लाइनों को छोड़ देता है। उदाहरण के लिए, C-2 C-aअगली पंक्ति की शुरुआत में C-2 C-eकूद जाएगा और अगली पंक्ति के अंत में कूद जाएगा। 3 का एक उपसर्ग तर्क दो लाइनों को स्थानांतरित करता है, और इसी तरह। पिछली लाइनों में जाने के लिए आप नकारात्मक तर्कों का भी उपयोग कर सकते हैं।

जब आप एक ही कॉलम में रहने के लिए कर्सर की आवश्यकता होती है, तो स्पष्ट रूप से इनका अधिक उपयोग नहीं होता है, लेकिन मुझे लगता है कि मेरे अधिकांश मैक्रोज़ में वैसे भी एक लाइन के शुरू या अंत में जाना शामिल है, इसलिए वे बहुत सुविधाजनक हैं।

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