समझने के लिए, यह इस प्रकार कमांड लाइन से करना है:, "grep -l" के परिणामस्वरूप "args" कैसे सेट करें?
vim `grep "hello" * -Rl`
यह है कि "हैलो" उन में (एल फ़ाइल नाम अकेले देता है) सभी फाइलों के साथ vim खोलता है। मैं वही काम करना चाहता हूं, लेकिन विम के भीतर से। वैचारिक रूप से, (जो काम नहीं करता है) कुछ इस तरह:
:args !grep "hello" * -Rl
मैं पूरी तरह से अलग दृष्टिकोण इस लक्ष्य को हासिल करने के लिए के लिए खुला रहा हूँ; मुझे बस एक लाइन पर होना पसंद है (इसलिए इसे संपादित करना और फिर से करना आसान है)।
जवाब बस बैकटिक उपयोग करने के लिए है - लेकिन एक महत्वपूर्ण प्रावधान के साथ! नीचे क्योंकि उद्धरण के मेरे लिए काम नहीं करता है,hello
चारों ओर:
:args `grep "hello" * -Rl`
लेकिन यह काम करता है अगर मैं उन्हें हटाने या उद्धरण से बच:
:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`
(इस में दफनाया गया था अराजकता के जवाब के बाद टिप्पणियां - मैंने उन्हें और अधिक दृश्यमान बनाने के लिए यहां जोड़ा, अगर किसी और को यह समस्या हो)
धन्यवाद, मैंने बैकटीक्स का उपयोग करने की कोशिश की, लेकिन विम उन्हें पहचान नहीं पाया - इसके बजाय यह एक फ़ाइल नाम के रूप में "grep" को व्याख्या करता है। क्या आपके पास आपके लिए काम करने का जवाब है? यदि ऐसा है, तो मुझे आश्चर्य है कि यह मेरे लिए क्यों काम नहीं करता है। – 13ren
हाँ, मेरे लिए ठीक काम किया। शायद एक संस्करण बात है। मैं 7.0.305 का उपयोग कर रहा हूँ। – chaos
हम्म, संस्करण मुझे देता है: वीआईएम - वीआई बेहतर 7.0 (2006 मई 7, संकलित जनवरी 31 2007 18:15:57) शामिल पैच: 1-122 – 13ren