2013-03-29 4 views
22

की अंतिम घटना को एक बड़े बफर में ढूंढें, मैं पैटर्न पैटर्न पैटर्न की अंतिम घटना तक स्क्रॉल करना चाहता हूं।विम

अगर मैं पहली घटना पर हूँ, यह काफी आसान पैटर्न/ के लिए खोज करने के लिए है, N साथ अगली आवृत्तिn को कदम रिवर्स और पिछले करने के लिए मिलता ..

तो मैं कर रहा हूँ घटनाओं के अनुक्रम के बीच में .. कूदने का एक बेहतर तरीका है?

G?foo<CR> 

वास्तव में, वहाँ एक और भी आसान तरीका है अगर आप पहले से कुछ के लिए खोज कर रहे थे:

उत्तर

49

अंतिम बार होने लगता है एक आसान तरीका है अंत करने के लिए कूद और पीछे की ओर खोज करने के लिए है। बस अंत करने के लिए कूद और बात तुम सिर्फ के लिए खोज कर रहे थे के लिए पीछे की ओर खोज:

GN 

कि के रूप में सरल।

संपादित करें: यदि आपकी खोज अंतिम पंक्ति पर हुई, तो GN दूसरी अंतिम घटना पर इसे छोड़ देगा। ggN का उपयोग इस समस्या को हल करेगा। (और इसी तरह के कारणों के लिए gg?foo<CR>।)

+0

। तुम सही हो। धन्यवाद! – Robottinosino

+0

हे, मुझे लगता है कि मेरा जवाब आपके दूसरे बिंदु के समान है। उस बिंदु को नहीं देखा जब मैंने अपना लिखा था। मेरा हटाओ, और तुम्हारा ऊपर! +1 – Kent

+5

भी मैं अपने 'जीजीएन' का सुझाव दूंगा, भले ही इसमें एक और महत्वपूर्ण स्ट्रोक हो। क्योंकि 'जीएन' केवल तभी काम करता है जब अंतिम मैच फ़ाइल की आखिरी पंक्ति में नहीं है। यदि यह अंतिम पंक्ति में बैठता है, तो आपका 'एन' उस पर कूद जाएगा। – Kent

2

एक संभावित लंबे समय तक समाधान:

:vim foo % | clast 
+0

'टाइप क्लस्ट' -> '-बैश: टाइप: क्लस्ट: नहीं मिला – Robottinosino

+0

हम्मम्मम्म ... क्या? – romainl

+0

मुझे लगता है कि 'क्लॉस्ट' एक प्रोग्राम है जो $ पाथ पर होना चाहिए? यदि ऐसा है, तो मैंने इसे खोजने के लिए 'टाइप'' की कोशिश की (जैसे 'कौन सी') लेकिन यह मुझे त्रुटि संदेश दिया .. 'क्लस्ट' क्या है? – Robottinosino

0

एक अन्य समाधान है:

G/\(.\{-}\zs\(foo\)\)\{1,}<CR> 
बेशक
+0

@StackOverflowed, आपका क्या मतलब है? – Reman

+0

क्षमा करें मैं बस इसे समझने की कोशिश कर रहा था :)। – StackOverflowed