जवाबों:
`.
आदेश आपका अंतिम परिवर्तन पर ले जायेगा।
`
एक निशान को जाता है, और .
एक "विशेष" मार्क जो स्वचालित रूप से स्थिति में जहाँ पिछले परिवर्तन किया गया था करने के लिए सेट कर दिया जाता है। :help `.
कुछ और जानकारी के लिए देखें ।
वहाँ भी है ``
जो आपको वापस लाएगा जहाँ कर्सर आपके अंतिम कूदने से पहले था। देखें :``
अधिक जानकारी के लिए मदद
एक और उपयोगी निशान है `^
; यह वह स्थिति है जहां कर्सर पिछली बार था जब इन्सर्ट मोड को रोका गया था। देखते हैं :help `^
।
:help mark-motions
निशान का उपयोग करने के बारे में कुछ और सामान्य जानकारी के लिए देखें (कुछ अन्य "विशेष" निशान जो स्वचालित रूप से सेट हैं)।
'
(बैकस्टिक) के बजाय आप (एपोस्ट्रोफी) का उपयोग भी कर सकते हैं `
।
यहां एक और दृष्टिकोण है जो आपके दिए गए परिदृश्य पर फिट बैठता है, और जहां आप तुरंत पहले थे gg
(अंतिम परिवर्तित लाइन के लिए नहीं) के लिए कूद जाएंगे ।
जब आप दबाते हैं gg
, तो आपकी पुरानी कर्सर स्थिति कूद सूची में धकेल दी जाती है । से :help jumplist
:
कूद सूची में जंपर्स को याद किया जाता है। साथ
CTRL-O
औरCTRL-I
आदेश आप फिर से वापस पुराने छलांग से पहले कर्सर पदों के लिए जा सकते हैं, और। इस प्रकार आप सूची में ऊपर और नीचे जा सकते हैं। प्रत्येक विंडो के लिए एक अलग कूद सूची है। प्रविष्टियों की अधिकतम संख्या 100 निर्धारित की गई है।[...]
यदि आप जंप कमांड का उपयोग करते हैं, तो जंप सूची के अंत में वर्तमान लाइन नंबर डाला जाता है। यदि एक ही लाइन पहले ही जंप सूची में थी, तो उसे हटा दिया जाता है। इसका परिणाम यह होता है कि जब
CTRL-O
आप दोहराते हैं तो केवल एक बार ही पुराने पदों पर वापस आ पाएंगे।
इसके लिए आवश्यक है कि आप +jumplist
फीचर के साथ Vim (vi नहीं) का उपयोग करें । यदि :echo has('jumplist')
प्रिंट करता है 1
, तो आप इसका उपयोग कर सकते हैं।
Dnetserr के उत्तर और पीटर रिनकर की टिप्पणी को जोड़ने के लिए, विम बदलावों की एक सूची रखता है, और इसके साथ कुछ आदेश भी जुड़े हैं।
:changes
परिवर्तनों को सूचीबद्ध करेगा, आपको दिखाएगा कि वे कहां थे और वे क्या थे। उदाहरण के लिए:
change line col text
2 8 17 #include <stdio.h>
1 3 0 #include "stm32f407.auto.h"
>
>
शो में वह रेखा जिसमें परिवर्तन स्टैक में आप हैं, एक तरह से जंप सूची ( :jumps
) या टैग स्टैक ( :tags
)। इसके अलावा जंप सूची और टैग स्टैक की तरह, आप इस सूची को पार कर सकते हैं।
सामान्य मोड में, g;
पिछले परिवर्तन स्थान g,
पर जाने के लिए और अगले एक पर जाने के लिए गति होती है । तुम भी करने से पहले परिवर्तन की संख्या टाइप कर सकते हैं g;
या g,
सूची से उस परिवर्तन में जाने के लिए। ऊपर, 2g;
मुझे जहाँ stdio.h शामिल परिवर्तन हुआ था ले जाएगा।
जब ढेर के बीच में, :changes
रिश्तेदार दूरी दिखाने के लिए अपडेट से संख्या । उदाहरण के लिए:
change line col text
1 8 17 #include <stdio.h>
> 0 3 0 #include "stm32f407.auto.h"
1 10 4 other
यह दिखाता है कि मैं वापस एक (जा सकते हैं 1g;
या सिर्फ g;
) या आगे की ओर एक ( 1g,
या बस g,
)।
यदि आप वास्तव में कुछ संशोधनों से पहले बदलाव करना चाहते हैं तो यह बहुत अच्छा है
इसका नुकसान यह है कि यह एक सामान्य गति की तरह काम नहीं करता है। उदाहरण के लिए, आप ऐसा नहीं कर सकते dg;
, जबकि पिछले परिवर्तन स्थान के लिए कर्सर से हटाते हैं, करने के लिए d'.
और d'^
गति के रूप में काम करते हैं।
चूंकि वीआई में पूर्ववत आदेश एक अंतिम कार्य के रूप में फिर से काम करेगा, जब मैं पूर्ववत था, तो मैंने uu
एक साधन के रूप में उपयोग किया है जहां मैंने अंतिम बार संपादित किया था।
आप के साथ विम चला रहे हैं nocompatible
सेट (ज्यादातर लोगों करते हैं), आप उपयोग करना चाहते u
के बाद CTRL+R
पूर्ववत और फिर से करना। अन्यथा uu
वीआई के रूप में काम करेगा।
:set nocompatible
इसका उपयोग नहीं किया गया है।
vim
(साथ nocompatible
) के साथ दो पूर्ववत करता है uu
, लेकिन मैं का उपयोग u
और CTRL+r
एक ही प्रभाव के लिए।
g;
औरg,
स्थानांतरित करने के लिए भी कर सकते हैं । देखें:h g;
और:h g,