2013-12-11 2 views
6

में एकाधिक विंडो में परिवर्तन आदेश स्वचालित रूप से लागू कर सकते हैं क्या विम स्वचालित रूप से dd, O, और u सभी खुली विंडो में परिवर्तन/सम्मिलित आदेश लागू कर सकता है? मैं एक खिड़की में एक लाटेक्स दस्तावेज़ लिख रहा हूं और अपने मार्जिन नोट्स, TODOs आदि के लिए दूसरी विंडो का उपयोग करना चाहता हूं (Cornell notes के समान)। मेरे विम टैबविम

तरह
|1 \documentclass{article}  |1 
|2 \begin{document}    |2 
|3 Lorem ipsum dolor sit amet, |3 TODO: reword this. 
| …consectetur adipisicing elit.| 
|4 Ut enim ad minim veniam, quis |4 Could use some more examples. 
| …nostrud exercitation ullamco.| 
|5        |5 Put bibliography here. 
|6 \end{document}    |6 

मैं wrap (और अधिमानतः showbreak) रखने के लिए चालू किए जाने के रूप में अपने वाक्य अक्सर काफी लंबे होते हैं लेनी होगी।

अभी तक मैं समानांतर में दो फ़ाइलों को नेविगेट करने के लिए सफलतापूर्वक scrollbind और cursorbind का उपयोग कर रहा हूं। जब मैं एक फ़ाइल में लाइनों को सम्मिलित या हटाता हूं, हालांकि संरेखण टूट जाता है। उदाहरण के लिए, मैं एक पंक्ति एक पैकेज लोड करने के लिए बाईं विंडो में (o का उपयोग कर) सम्मिलित हो सकता है, उत्पादन

|1 \documentclass{article}  |1 
|2 \usepackage{hyperref}   |2 
|3 \begin{document}    |3 TODO: reword this. 
|4 Lorem ipsum dolor sit amet, |4 Could use some more examples. 
| …consectetur adipisicing elit.| 
|5 Ut enim ad minim veniam, quis |5 Put bibliography here. 
| …nostrud exercitation ullamco.| 
|6        |6 
|7 \end{document}    |~ 

अब सभी दाएं विंडो में टिप्पणी गलत तर्ज पर कर रहे हैं। यदि लेफ्टथैंड विंडो में मेरा संपादन राइथेंड विंडो में लाइन 1 के बाद एक नई लाइन भी डाला गया है, तो संरेखण संरक्षित किया जाएगा। मुझे windo कमांड का उपयोग करके कुछ सफलता मिली है (उदाहरण के लिए windo normal dd दोनों फ़ाइलों में एक पंक्ति को हटाने के लिए); क्या मुझे dd से window normal dd पर नक्शा करना चाहिए और इसी तरह मैं प्रत्येक आदेश के लिए उपयोग कर सकता हूं? यह o जैसे कमांड के लिए कैसे काम करेगा जो आपको डालने मोड में छोड़ देगा?

समस्या को जटिल करने के लिए, मैं आदर्श रूप से किसी भी क्रिया को पसंद करता हूं जो दोनों फ़ाइलों में दोहराने के लिए एक न्यूलाइन वर्ण बनाया या हटा दिया गया है। उदाहरण के लिए, डालने मोड में कैरिज रिटर्न पकड़ा जाना चाहिए और दूसरी विंडो में दोहराया जाना चाहिए।

क्या ऐसा करने का कोई बेहतर तरीका है (मैं विम के साथ रहूंगा लेकिन अन्य संपादकों के बारे में सुनने में रूचि रखूंगा जिनके पास यह कार्यक्षमता है), या क्या मुझे अपनी टिप्पणियां दस्तावेज़ फ़ाइल के अंदर रखना चाहिए?

+2

कोई जवाब नहीं है, लेकिन यह नहीं है कि '%' टिप्पणियां क्या हैं? बस उन दस्तावेज़ों में सीधे दाईं ओर लाइनें डालें जहां वे संबंधित हैं। यदि आपको जरूरी है, तो भी आप उन्हें आसानी से दूर कर सकते हैं, ': g/^ \ s *%/d'। – glts

उत्तर

2

विम के भीतर, आप एक पूर्ण प्रणाली को लागू करने में सक्षम नहीं होंगे जो 100% पूर्ण और सुसंगत है।

जबकि dd जैसे कमांड अन्य बफर पर सीधे लागू किए जा सकते हैं, डालने मोड को पहले से ही टेक्स्ट एंट्री के अंत की प्रतीक्षा करनी होगी। u जैसे कमांड को सीधे लागू नहीं किया जा सकता है; आपको क्या बदलना है, और अन्य बफर पर लागू करने की आवश्यकता है। :global, :substitute जैसे अधिकांश पूर्व आदेशों के लिए वही।

फिर से मानचित्रण सबसे आदेशों के बजाय

, मैं नहीं बल्कि CursorHold,InsertLeave तरह की घटनाओं, जो पहले से संग्रहीत मूल्य के साथ लाइनों की कुल संख्या की तुलना पर :autocmd रों परिभाषित चाहते हैं, और फिर उसके अनुसार वर्तमान पंक्ति पर अन्य बफर अनुकूलन। यदि आप स्वीकार करना चाहते हैं कि कुछ संपादन उस योजना के माध्यम से गिर जाएंगे, और आप या तो उनसे बचें या मैन्युअल रूप से उन्हें सही करें, यह एक व्यावहारिक समाधान हो सकता है।

3

अच्छा, मैं Cornell notes कभी नहीं सुना है, लेकिन मुझे शक है कि यह किसी भी hickups के बिना दो बफ़र्स जिस तरह से आप चाहते हैं सिंक्रनाइज़ करने के लिए संभव है (मैं हालांकि गलत साबित किया जा करने में खुशी होगी)

लेकिन अगर हम थोड़ा सा कदम उठाते हैं और दो बफर सिंक्रनाइज़ करने की कोशिश करने के बजाय हम स्तंभ 120 पर एक गटर बनाकर केवल एक बफर का उपयोग करने का प्रयास करते हैं तो क्या होगा?

कार्यप्रवाह

  • एक नया दस्तावेज़
  • :set virtualedit=all
  • सामान्य मोड में, प्रकार [email protected]='120|i|^M^[' 80 लाइनों पर स्थिति 120 पर एक गटर बनाने के लिए बनाएं।
  • दस्तावेज़ दस्तावेज़
लिखें और नोटों
  • सहेजें

    ^एम के रूप में Ctrl-Vदर्ज
    ^[के रूप में Ctrl-V दर्ज किया गया हैesc दर्ज किया गया है

    लाभ

    • नेविगेट और दस्तावेज़ को हटाने और नोटों को सरल बनाया गया है। आखिरकार, आप बस एक बफर में काम कर रहे हैं।
    • आपको दस्तावेज़ और नोट दोनों रखने के लिए केवल एक फ़ाइल खोलनी होगी।
    • यदि आप अधिकतर समय एक मौजूदा दस्तावेज़ को नेविगेट करने और बदलने में व्यतीत करते हैं, तो यह एक व्यवहार्य समाधान हो सकता है।

    नुकसान

    • नोट्स लेखन क्योंकि आप का उपयोग करना होगा और अधिक जटिल हो जाएगा R(की जगह)i(डालने) के लिए नहीं गंदगी के बजाय एक बहुत गटर हमने बनाया है।
    • दो बफर का आकार बदलना निश्चित गटर 'आकार बदलने' से आसान है।
    • यदि आप अधिकतर समय नए दस्तावेज़ बनाने में व्यतीत करते हैं, तो यह दर्दनाक होगा।
  • +0

    @glts - हाँ यह करता है, thx। –