विम: कर्सर को अपनी अंतिम स्थिति में ले जाएं


252

क्या (g) कर्सर को अपनी पिछली स्थिति में ले जाना संभव है (जबकि सामान्य मोड में)? पिछले कर्सर स्थितियों की सूची में आगे और पीछे साइकिल चलाने के लिए कुछ आदर्श होगा। लेकिन यह भी सिर्फ अंतिम स्थान पर स्विच करने के लिए पर्याप्त होगा (कुछ cd -निर्देशिकाओं के साथ टकराव की तरह )।

यहाँ थोड़ा प्रदर्शन है:

line |1| <- cursor position
line 2
line 3
line 4

और मान लीजिए कि मैंने किया 2j, अब यह कैसे है:

line 1
line 2
line |3| <- cursor position
line 4

अब मैं 2kपहले स्थान पर और संभवत: पिछले पदों पर वापस जाने के लिए ( स्पष्ट रूप से) के अलावा कुछ प्रेस करना चाहूंगा ।

जवाबों:


410

सबसे तेज़ तरीका या तो हिट करना है:

''

(दो प्रेरित) या:

``

(दो बैकटिक्स)। ध्यान दें कि अंतर यह है कि बैकटिक लाइन पर एक ही स्थान पर जाता है, जबकि एपोस्ट्रोफी लाइन की शुरुआत में जाती है। यूके कीबोर्ड पर, एपोस्ट्रोफ अधिक सुलभ है, इसलिए मैं उस एक का उपयोग करने के लिए तैयार हूं। इस तरह उपयोगी चिह्नों का भार है, देखें :help mark-motions

कुछ अन्य गतियों के लिए ( 2jमुझे नहीं लगता), कूद-सूची भी है जो आपको कई गतियों के बीच आगे और पीछे नेविगेट करने देती है। CtrlOऔर CtrlIइस नेविगेशन को करें, लेकिन :help jump-motionsअधिक जानकारी के लिए देखें।


3
वास्तव में उनमें से कोई भी वैसा ही व्यवहार नहीं करता जैसा मैं उम्मीद करता हूं लेकिन मुझे लगता है कि वहां कुछ और उपलब्ध नहीं है।
इदं के

1
@ इदन के - कैसे `(डबल बैकटिक) आपको वह नहीं देता जो आप चाहते हैं? ("इतिहास" पहलू को छोड़कर)।
दान

3
@Dan: अगर मैं इसे ऊपर के उदाहरण पर आज़माता हूं तो मुझे यह व्यवहार दिखाई देता है: मैं पंक्ति 1 पर खड़ा हूं, फिर jएक पंक्ति में दो बार दबाएं (अब मैं पंक्ति 3 पर हूं) तो डबल backtick दबाने से मुझे पंक्ति 1 मिल जाती है और मुझे उम्मीद है इसे लाइन 2 पर ले जाना है
इदं के

2
मुझे लगता है कि आपको स्थानांतरित करना होगा (2j या कुछ), फिर संपादित करें (या पाठ को संशोधित करने के लिए कोई कार्रवाई करें) फिर पिछली स्थिति में वापस जाने के लिए '' का उपयोग करें। यह "2j" का उपयोग करने के लिए तर्कसंगत नहीं है, कुछ भी न करें और पिछली स्थिति में वापस जाएं
एसेनर

8
@IdanK जंपलिस्ट केवल तभी अपडेट किया जाता है (जब पिछला कर्सर स्थिति रिकॉर्ड की जाती है) जब आप वास्तविक "जंप" का उपयोग करते हैं, जो कि (मुझे लगता है) i j k lआंदोलनों के अलावा कोई भी गति कमांड है । (सहायता डॉक्स से पूरी सूची, है "'"', "`", "G", "/", "?", n", "N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", H" and the commands that start editing a new file।) तो नहीं, यह "पूर्ववत" 2jया समान नहीं होगा , लेकिन यह लगभग सब कुछ के लिए काम करेगा। यह समझ में आता है क्योंकि 2jएट अल। पहले से ही सरल व्युत्क्रम हैं ( 2k, आदि), जबकि अन्य नहीं करते हैं।
काइल स्ट्रैंड

61

आप अपने पिछले संपादित स्थानों की सूची में भी उपयोग कर सकते हैं g;और g,वापस ले जा सकते हैं ।

गैर-यूएस कीबोर्ड पर

मेरे स्विस और जर्मन कीबोर्ड लेआउट में, कुंजी ;का उपयोग करते हुए असुविधाजनक रूप से टाइपिंग की आवश्यकता होती है Shift। इसलिए, मैंने इसके लिए g-एक अधिक सुविधाजनक उपनाम के रूप में परिभाषित g;किया $MYVIMRC:

" Map g- as an alias for g;
nnoremap g- g;

जबकि मुझे यह बहुत पसंद है, यह केवल एक फ़ाइल में परिवर्तन के बीच कूद जाएगा। यदि आप बफर 1 को संपादित करते हैं, तो बफर 2 को संपादित करें, यह बफर 1 पर वापस नहीं
आएगा

39

DrAl के जवाब से किसी को समस्या का पता क्यों नहीं चला ? ''या ``इस पोस्ट के मूल समस्या का समाधान नहीं होगा! ये दो कमांड 2jकम से कम मेरे लिए कुछ कर्सर आंदोलन जैसे काम नहीं करेंगे । यह नौसिखिया बनाने के लिए और अधिक भ्रमित हो जाएगा।

''या ``, और CtrlIया का व्यवहार CtrlOकूद सूची पर आधारित है। 2jस्थिति परिवर्तन कूद सूची इन आदेश के लिए काम नहीं करेगा तो में बचत होगी 2j

''या ``अंतिम स्थिति और वर्तमान स्थिति के बीच स्विच करें। CtrlIऔर CtrlOकूद सूची इतिहास के माध्यम से काम करते हैं।

g;और g,संपादन पदों के माध्यम से आगे बढ़ें, जो बहुत बार उपयोग किए जाते हैं।


1
इस पर ध्यान दिलाने के लिए धन्यवाद! मुझे आश्चर्य है 2j, तब जैसे मामलों के लिए क्या काम करेगा ?

33

सहायता से अधिकार: (सहायता कूद):

: ju [mps] जंप लिस्ट प्रिंट करें (मोशन कमांड नहीं)। {वि। में नहीं} {बिना उपलब्ध नहीं | + जम्पलिस्ट | सुविधा}

                          *jumplist*

कूद सूची में जंपर्स को याद किया जाता है। CTRL-O और CTRL-I कमांड के साथ आप पुराने जंप से पहले कर्सर स्थिति में जा सकते हैं, और फिर से वापस आ सकते हैं। इस प्रकार आप सूची में ऊपर और नीचे जा सकते हैं। प्रत्येक विंडो के लिए एक अलग कूद सूची है। प्रविष्टियों की अधिकतम संख्या 100 निर्धारित की गई है। {बिना उपलब्ध नहीं। + जम्पलिस्ट सुविधा}

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