मैं vim कमांड के तर्क के रूप में चर सामग्री का उपयोग कैसे करूं?


11

उदाहरण के लिए मान लीजिए मैंने किया

:let foo=pattern

और अब मैं शाब्दिक स्ट्रिंग के बजाय Ggrep patterचर का उपयोग करना चाहता हूं ।foopatter

:echo foo

आउटपुट pattern, लेकिन

:Ggrep foo

सिर्फ फू के लिए लग रहा है

अपडेट करें:

कमांड का एक तार बनाना और फिर दौड़ना: इस पर अमल करना कोई हल नहीं है, इसकी हैक है। और यह किसी भी गैर-तुच्छ परिवर्तनशील मूल्यों के साथ टूट जाता है।


क्या है Ggrep(कैपिटल जी?)
अकीरा

git grep 'fugutive' vim plugin से
विटाली

उदाहरण कमांड गलत है। इसे foo = 'pattern' होने देना चाहिए। यह कहें कि: निष्पादित एक हैक पूरी तरह से गलत है। यही समाधान है: आप इसे निष्पादित करने से पहले कमांड का मूल्यांकन करना चाहते हैं
अल्बफैन

जवाबों:


2

यह वेरिएबल के बारे में नहीं है, लेकिन शायद vim संक्षिप्तीकरण कमांड मदद कर सकता है। कमांड लाइन से कोशिश करें:

:abbreviate foo pattern

फिर

:Ggrep foo<space>

यह आपके 'पैटर्न' को 'फू' पूरा करेगा।


अब दौड़ने की कोशिश करो echo foo। विरोध echo patternजो एक चर नहीं है। यह हैक और गुमराह करने वाला है।
एल्बफैन

6

किस बारे में:

:execute ':grep ' . foo

मैं फू की सामग्री को ठीक से कैसे बचूँ? इसमें विशेष चरित्र जैसे ", ', /, \, आदि शामिल हो सकते हैं
विटाली कुशनर

1
@Vitaly कुशनर: "देखें: मदद से बच ()" और ": मदद fnameescape ()"।
garyjohn

मुझे पता है कि भागने (), लेकिन क्या पात्रों के बचने के बारे में निश्चित नहीं है
विटाली कुशनर 13

fnameescape () अच्छा नहीं है, इसका फ़ाइल नाम तर्क नहीं है, यह प्लगइन फ़ंक्शन के लिए एक arg है। मान लीजिए मैं: foo = "aaa \" bbbb'cccc "
विटाली

1
मैं इस पर भी अपने बाल खींच रहा हूं। आप let xyz = tabpagenr()तब जैसी कोई आदेश जारी नहीं कर सकते tabnext xyz। विम की स्क्रिप्टिंग भाषा उतनी ही त्रुटिपूर्ण है जितनी कि इसका मोडल वातावरण निर्दोष है।
PUK

2

यदि आपको :exeसमाधान पसंद नहीं है , तो आप =अभिव्यक्ति रजिस्टर का उपयोग करके चर की सामग्री को कमांड लाइन में "पढ़" सकते हैं । उदाहरण के लिए, टाइप करें :Ggrepऔर उसके बाद Ctrl- rऔर फिर टाइप करें =fooऔर प्रेस Enterfoo"पैटर्न" वाले चर को मानते हुए , आपकी कमांड लाइन अब दिखनी चाहिए:

:Ggrep pattern

इसका लाभ यह है कि आप वास्तविक कमांड को देख सकते हैं, जिसे चलाया जाएगा, और Enterदूसरी बार दबाने से पहले इसे संशोधित भी कर सकते हैं ।

देख:

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