विम में, क्या खोज पंक्ति में पाठ चिपकाने का एक तरीका है?


105

मैं $maximumTotalAllowedAfterFinishइसे खोजना चाहता हूं और इसे बदलना चाहता हूं $minimumTotalAllowedAfterFinish। लंबा पाठ टाइप करने के बजाय:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

क्या खोज लाइन में इन लंबे चर नामों को कॉपी करने का एक तरीका है, क्योंकि, कमांड लाइन पर मैं pपेस्ट करने के लिए " " टाइप नहीं कर सकता हूं ?


2
मुझे लगता है कि टू को भी पहले भागने की जरूरत है $क्योंकि इस बैक्टीरिया का मतलब है लाइन का अंत।
ल्यूक एम

1
@LucM ओपी \V"जादू" वर्णों को निष्क्रिय करने के लिए खोज पैटर्न में कहीं भी उपयोग कर सकता है ।
डैश-टॉम-बैंग

जवाबों:


128

आप एक नंबर या नामांकित रजिस्टर की सामग्री को टाइप करके सम्मिलित कर सकते हैं CTRLR {0-9a-z"%#:-=.}। टाइप करके CTRL-R CTRL-Wआप कर्सर के नीचे करंट शब्द पेस्ट कर सकते हैं। देख:

:he cmdline-editing

अधिक जानकारी के लिए।


8
उत्तर के लिए धन्यवाद, मेरे लिए सबसे आम है: CTRL+ R +(जैसा कि यह क्लिपबोर्ड सामग्री के लिए जाता है)
पीटर बटकोविक

4
0रजिस्टर अंतिम yanked स्ट्रिंग है।
एवगेनी सर्गेव

52

इसे सामान्य रूप से कॉपी करें, फिर CtrlR"पेस्ट करें। बहुत सारे अन्य CtrlRशॉर्टकट हैं (उदाहरण के लिए, एक कैलकुलेटर, वर्तमान फ़ाइल नाम, क्लिपबोर्ड सामग्री)। :help c_<C-R>पूरी सूची देखने के लिए टाइप करें।


16

कॉपी:
1) v(या माउस के साथ हाइलाइट करें, विजुअल मोड में)
2) y(यांक)

पेस्ट:
1) /(खोज मोड)
2) Ctrl + R + 0(यैंकड रजिस्टर से पेस्ट)


1
मैं इस उत्तर की तलाश में था जब मैंने इस प्रश्न को Google में खोजा, मुझे आश्चर्य है कि इसमें नकारात्मक वोट क्यों हैं।
सैंटियागो अरीज़ती 15

15

q:नए बफ़र में इतिहास संपादन मोड में आने के लिए टाइप करें। फिर बफर की अंतिम पंक्ति को संपादित करें और Enterइसे निष्पादित करने के लिए दबाएं ।


3
तो यह है कि बफर के लिए क्या था! धन्यवाद (मैं हमेशा टाइप करते समय उस पर ठोकर खा गया: q और भ्रमित हो गया)
gsk

3
q/खोज इतिहास तक पहुंचने और नई खोजों को पेस्ट करने के लिए भी उपयोगी है।
79E09796

3

या vim बफर में कमांड बनाएँ, जैसे कि इसे बफर में टाइप करें:

s/foo/bar/gci

और इसे एक नामांकित रजिस्टर पर कॉपी करें, "ayy(यदि कर्सर उस रेखा पर है!)।

अब आप aVim की पूर्व कमांड लाइन से " " रजिस्टर की सामग्री को निष्पादित कर सकते हैं :

:[OPTIONAL_RANGE]@a

मैं इसका हर समय उपयोग करता हूं।


आपका "एय" या तो उद्धृत किया गया है (और इसलिए गलत है) या यह नहीं है (और इसलिए अंत में एक गलत "है)
tzot 8:25 बजे

2

आमतौर पर, आप ऐसा करेंगे कि माउस चयन के साथ (शायद CtrlInsया CtrlCचयन के बाद) और फिर, जब कमांड / खोज लाइन में, मध्य-क्लिक ( ShiftInsया CtrlV)।

एक और तरीका है, टेक्स्ट बफर में उपलब्ध सभी एडिटिंग के साथ टेक्स्ट बफ़र में अपनी कमांड / सर्च लाइन लिखना है, जिसके साथ :और फिर, लाइन पर, शुरू करें:

"add@a

जो पूरी कमांड लाइन को बफर में स्टोर करेगा a, और फिर इसे निष्पादित करेगा। यह कमांड इतिहास में संग्रहीत नहीं किया जाएगा, यद्यपि।

ऊपर दिए गए मुख्य प्रेस के लिए एक उदाहरण के रूप में टेक्स्ट बफर में निम्नलिखित लाइन बनाने का प्रयास करें:

:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g

अंत में, आप q:एक टेक्स्ट बफर में इतिहास संपादन दर्ज करने के लिए प्रवेश कर सकते हैं ।


1

आप शब्द है कि आप अपने पैटर्न और फिर प्रेस में जोड़ना चाहते हैं पर कर्सर जगह कर सकते हैं /या :तो खोज या आदेश मोड, और फिर प्रेस दर्ज करने के लिए CtrlRCtrlWशब्द कॉपी करने के लिए। स्रोत

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