2009-06-23 7 views
10

समझने के लिए, यह इस प्रकार कमांड लाइन से करना है:, "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` 

(इस में दफनाया गया था अराजकता के जवाब के बाद टिप्पणियां - मैंने उन्हें और अधिक दृश्यमान बनाने के लिए यहां जोड़ा, अगर किसी और को यह समस्या हो)

उत्तर

8

अच्छा, यह मेरे लिए काम करता है:

:args `grep -Rl "hello" *` 

रनिंग vim 7.0.305।

+0

धन्यवाद, मैंने बैकटीक्स का उपयोग करने की कोशिश की, लेकिन विम उन्हें पहचान नहीं पाया - इसके बजाय यह एक फ़ाइल नाम के रूप में "grep" को व्याख्या करता है। क्या आपके पास आपके लिए काम करने का जवाब है? यदि ऐसा है, तो मुझे आश्चर्य है कि यह मेरे लिए क्यों काम नहीं करता है। – 13ren

+0

हाँ, मेरे लिए ठीक काम किया। शायद एक संस्करण बात है। मैं 7.0.305 का उपयोग कर रहा हूँ। – chaos

+0

हम्म, संस्करण मुझे देता है: वीआईएम - वीआई बेहतर 7.0 (2006 मई 7, संकलित जनवरी 31 2007 18:15:57) शामिल पैच: 1-122 – 13ren

3

args आदेश का प्रयास करें:

:ar[gs] `grep -Rl "hello" .` 

बैकटिक आप के लिए काम नहीं कर रहे हैं, तो आप आप vim के वर्तमान संस्करण का उपयोग कर रहे का उपयोग कर रहे हैं?

:version 
+0

धन्यवाद, मैंने कोशिश की, लेकिन "grep" एक फ़ाइल नाम के रूप में व्याख्या ... – 13ren

+0

यह संस्करण 7 है, लेकिन नवीनतम नहीं है। मैं अब एक नया संस्करण की जांच कर रहा हूं। – 13ren

+0

मैंने अभी संस्करण 7.1.314 में अपग्रेड किया है, लेकिन एक ही समस्या है। मुझे आश्चर्य है कि समस्या क्या है। – 13ren

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