2011-08-03 14 views
14

के आउटपुट के साथ विम चयन को बदलें, मुझे पैरामीटर मान के रूप में एक कर्ल कमांड में विम में कुछ चयनित टेक्स्ट को पास करने की आवश्यकता है। उदाहरण के लिए। मुझेशेल कमांड

curl -sSd css="body { border-radius: 5px; }" http://prefixr.com/api/index.php 

चलाने के लिए सक्षम होना चाहिए। जाहिर है, "शरीर {सीमा-त्रिज्या: 5 पीएक्स;}" भाग गतिशील होगा। आमतौर पर, विम में एक दृश्य मोड चयन।

मैं चयनित टेक्स्ट कैसे प्राप्त करूं और इसे कर्ल के पैरामीटर के रूप में पास करूं?

+0

चयनित पाठ को खोल आदेशों के लिए 'STDIN' के रूप में उपलब्ध कराने के लिए संबंधित प्रश्न: [खोलने के लिए पाइप और जानकारी लाइन पर आउटपुट प्राप्त करें] (http://stackoverflow.com/questions/2575545/vim-pipe-selected-text-to -शेल-सीएमडी-एंड-प्राप्त-आउटपुट-ऑन-विम-इन्फो-कमांड-लाइन) और [पूरे बफर के साथ काम करने के लिए और खोल से पिपिंग] (http://stackoverflow.com/questions/7867356/piping- बफर-टू-बाहरी-कमांड-इन-विम) – user1129682

उत्तर

15

आप बाहरी प्रोग्राम के माध्यम से चयनित पाठ को फ़िल्टर करने के लिए :! कमांड का उपयोग कर सकते हैं। पाठ stdin को खिलाया जाता है और stdout से परिणामों के साथ प्रतिस्थापित किया जाता है।

इस मामले में आप बिल्ली और आदेश प्रतिस्थापन उपयोग करने के लिए एक पैरामीटर के रूप लाइनों को खिलाने के लिए कर्ल करने के लिए है, तो तरह होगा:

:'<,'>!curl -sSd css="`cat`" http://prefixr.com/api/index.php 
+0

हैकी। लेकिन यह वही है जो मैं चाहता हूं। धन्यवाद। – harithski

+6

यह चयनित पाठ पर नहीं, चयन के साथ लाइनों पर काम करता प्रतीत होता है। उदाहरण के लिए, यदि कोई पंक्ति "abcde" है और मैं "बीसीडी" का चयन करता हूं और उदाहरण के लिए चलाता हूं ':' <,'>! Python3 -c 'प्रिंट (इनपुट() + "x")' 'मुझे "abcdxe" abcdxe " "।मैंने कहीं पढ़ा है कि '<' and ''>' के स्थान पर '\ '<' and '\'>' का उपयोग करके चयन पर काम करना चाहिए, लेकिन मेरे लिए काम नहीं करता है। – AkiRoss

1

का परीक्षण नहीं कर सकता इस अभी ऐसा नहीं 100% यकीन है कि अगर यह

:r ! curl -sSd="`cat`" http://prefixr.com/api/index.php` 
+0

कृपया डाउनवॉटिंग से बचें जब तक कि मैं कल यह कोशिश नहीं कर सकता, mmmkay? :) – Kimvais

+0

उत्तर देने से पहले इसे कैसे आजमाया जा रहा है? – user98761

1

द्वारा

esc, इसके बाद काम करेंगे एक या अधिक पंक्तियों का चयन करने और का उपयोग करके: आप उदाहरण के लिए, एक कमांड को इन पंक्तियों के पास कर सकते हैं:

तो sort आदेश का उपयोग कर एक पूरी फ़ाइल को सॉर्ट, इस कोशिश: ggVG तरह है, जो अपने संपादक में इस तरह दिखना चाहिए:

बी

सी

एक

: '<,'> तरह

+1

मुझे पता है कि! आपको शेल कमांड चलाने देता है, लेकिन मैं चयन को * part * खोल कमांड में कॉपी करना चाहता हूं। बस इसे पाइप नहीं। – harithski

0

नि: शुल्क नई-पंक्तियों के बिना पाइपिंग शब्द के लिए, इस उदाहरण देख चयनित अपरकेस में पाठ:

select-region c Control-r = system("perl -pe '$=uc($)'", @")

स्पष्टीकरण: चुनिंदा क्षेत्र, ग, सीआर अभिव्यक्ति निष्पादित करने के लिए (परिवर्तन चयन) के लिए है। नोट: डॉलर डॉलर अंडरस्कोर है, लेकिन अंडरस्कोर पोस्ट करने के बाद दिखाई नहीं दे रहा है।

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