2012-09-08 10 views
7

आइए कहें कि टेक्स्ट में कुछ ब्लॉक है जिसे मैं फ़ाइल में खोजना चाहता हूं। क्या उस पाठ का दृश्य-ब्लॉक चयन करने का कोई तरीका है और फिर इसे वर्तमान खोज शब्द बनाते हैं? इस तरह मैं विकल्प कमांड के बाईं ओर पूरी चीज टाइप किए बिना // // replacementText/g करने में सक्षम होगा।क्या मैं वर्तमान खोज शब्द को एक दृश्य ब्लॉक बना सकता हूं?

उत्तर

3

आपको मुझे माफ करना होगा, मुझे याद नहीं है कि मुझे यह कहां मिला, लेकिन यह आश्चर्यजनक काम करता है। बस अपने .vimrc में जोड़ें। अपने ठेठ * और # नेत्रहीन चयन करने के बाद का उपयोग करें:

" Search for selected text, forwards or backwards. 
vnoremap <silent> * :<C-U> 
    \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR> 
    \gvy/<C-R><C-R>=substitute(
    \escape(@", '/\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR> 
    \gV:call setreg('"', old_reg, old_regtype)<CR> 
vnoremap <silent> # :<C-U> 
    \let old_reg=getreg('"')<Bar>let old_regtype=getregtype('"')<CR> 
    \gvy?<C-R><C-R>=substitute(
    \escape(@", '?\.*$^~['), '\_s\+', '\\_s\\+', 'g')<CR><CR> 
    \gV:call setreg('"', old_reg, old_regtype)<CR> 

यहाँ वास्तविक लाभ यह है कि यह किसी विशेष वर्ण, बनाम निकल जाता है तो बस खोज आदेश में चिपकाने है। यह भी कम कीस्ट्रोक है, जो आपके कार्य की निष्ठा को अधिकतम करता है।

4

एक दृश्य ब्लॉक बनाएं और इसे अनाम नाम "" पर चिह्नित करें: चयनित दृश्य ब्लॉक के साथ, y को yank पर टाइप करें। खोज शब्द के रूप में अज्ञात रजिस्टर की सामग्री डालने के लिए / - या :s/ के साथ खोज शुरू करें और Ctrl-r टाइप करें " टाइप करें।

यह ब्लॉक को वर्तमान खोज नहीं करेगा, लेकिन यह लगभग आसान है।

Ctrl-r कमांड लाइन में कहीं भी इस्तेमाल किया जा सकता है, ताकि आप इसका उपयोग भी कर सकें। प्रतिस्थापन या प्रतिस्थापन पाठ, या सम्मिलित मोड में भरने के लिए।

+0

ग्रेट, भरोसेमंद, जाने-माने विधि, खासकर यदि आप रिमोट मशीन या पर्यावरण पर हैं, तो आप आसानी से एक कस्टम। Vimrc लोड नहीं कर सकते हैं। – kenny

संबंधित मुद्दे