2011-08-04 11 views
20

मैं एक vim shell कमांड में एक चर का उपयोग करने के बारे में कैसे जा सकता हूं (एक ! के साथ किया गया है) एक विस्क्रिप्ट में? उदाहरण के लिए, कुछ तरह के इस तरह: (सिर्फ एक उदाहरण है, न कि मैं वास्तव में क्या करने के लिए कोशिश कर रहा हूँ क्या)एक vim shell कमांड में चर का प्रयोग

function Ls(dir) 
    !ls a:dir 
endfunction 

उत्तर

25

उपयोग execute आदेश। इसके बाद सब कुछ एक अभिव्यक्ति है जो एक स्ट्रिंग का मूल्यांकन करता है, जो उसके बाद आपके द्वारा टाइप किए गए कमांड की तरह निष्पादित होता है।

function Ls(dir) 
    execute '!ls ' . a:dir 
endfunction 

यह कहते हैं, "अभिव्यक्ति '!ls ' . a:dir का मूल्यांकन करें और फिर इसे निष्पादित।" परिवर्तनीय a:dir का विस्तार किया गया है, डॉट दो तारों को '!ls whatever' में जोड़ता है और फिर इसे निष्पादित किया जाता है जैसे आपने इसे टाइप किया था।