2010-05-17 19 views
7

संभव डुप्लिकेट:
Open file from complete path under cursor in Vimविम फ़ाइल खोलने

मान लीजिए कि मैं निम्न फ़ाइल पेड़ करते हैं:

/ 
    include/ 
    library/ 
     a.hpp 
     b.hpp 
    src/ 
    a.cpp 
    b.cpp 

और निम्नलिखित /src/a.cpp फ़ाइल:

#include "a.hpp" 
#include "b.hpp" 

मैं हमेशा रूट निर्देशिका पर Vim खोलता हूं। तो जब मैं a.hpp लोड करना चाहते हैं मुझे क्या करना:

:tabnew include/library/a.hpp 

या:

:tabnew **/a.hpp 

मैं मैप करने के लिए <F4> एक नए टैब में कर्सर के तहत फ़ाइल खोलने के लिए, एक पुनरावर्ती खोज का उपयोग करना चाहते हैं।

:map <F4> :tabnew **/expand("<cfile>")<cr> 

लेकिन जाहिर है, यह काम नहीं कर सकते हैं, के रूप में यह बजाय फ़ाइल "/expand(" को खोलने के लिए कोशिश करता है:

मैं निम्नलिखित मानचित्रण आदेश की कोशिश की।

कोई संकेत है कि मैं इसे कैसे कर सकता हूं?

धन्यवाद।

उत्तर

3

:help gf इसे पूरा करने के तरीके पर एक संकेत देता है।

:nmap <F4> :tabe **/<cfile><cr>

ऐसा लगता है <cfile> स्वचालित रूप से मैपिंग में विस्तार किया गया है।

+0

यह काम नहीं कर सकता (और काम नहीं करता) क्योंकि '' का मूल्यांकन 'निष्पादन 'आदेश द्वारा किया जाता है और जब मैपिंग का उपयोग नहीं किया जाता है। – ereOn

+0

बह, आप सही हैं। कर्सर आपके परीक्षण मामले पर होने पर मानचित्र को परिभाषित करते समय यह ठीक काम करता है;) –

+0

मैंने इसे अभी पाया और फिर आपका संपादन देखा! वैसे भी धन्यवाद;) मैं इसे स्वीकार करूंगा। – ereOn