2010-10-11 15 views
5

NERDTree व्यूपोर्ट डिस्क सी में दिखाता है: भले ही मैं कौन सी डिस्क फ़ाइल खोलूं।मैं उसी ड्राइव पर खोलने के लिए एनईआरडीटी कैसे बना सकता हूं जिसे मैं संपादित कर रहा हूं?

जब मैं खिड़कियों मैं फ़ाइलों को खोलने में जाँचने का उपयोग का उपयोग कर:

gvim.exe --remote-tab-silent [FILE] 

मैं _vimrc में इस लाइन के साथ NERDTree लोड हो रहा हूँ:

au VimEnter * NERDTree 

NERDTree सकते हैं automaticaly किसी भी तरह ड्राइव को दूर करने के ड्राइव को बदलने?

उत्तर

5

NERDTree कई पूर्व अपने बफर में हेरफेर करने के आदेश प्रदान करता है काम कर स्थापित करने के बारे में ( :help NERDTreeGlobalCommands देखें)। उनमें से :NERDTreeFind कमांड जो :NERDTree कमांड के समान व्यवहार करता है, सिवाय इसके कि निर्देशिका में NERDTree बफर खोलता है जिसमें वर्तमान में खोला गया फ़ाइल है।

तो, क्रम प्रश्न में वर्णित वांछित प्रभाव को प्राप्त करने के लिए आपको बस ऑटो-आदेश को बदलने

:autocmd VimEnter * NERDTreeFind 
+0

+1 अधिक स्वच्छ समाधान तो मेरा :) – kfl62

1

मैं NERDTree के लिए और इस तरह से जब मैं इसे खोलने में मैपिंग का उपयोग हमेशा वर्तमान निर्देशिका

" NERDTree mappings 
nnoremap <silent> <F9> :NERDTreeToggle <cr> 
inoremap <silent> <F9> <Esc>:NERDTreeToggle <cr> 

में खुलती लेकिन अगर आप gvim ~/other/dir/file NERDTree की तरह एक फ़ाइल को खोलने वर्तमान dir खुल जाएगा जहां से जाँचने बुलाया गया था। तो यह आपकी समस्या का असली समाधान नहीं है।

शायद यदि आप cd जीवीएम कॉल करने से पहले काम करने वाले डीआईआर में आपकी समस्या का समाधान करेंगे। इस मामले में _vimrc में भी आपके au VimEnter * NERDTree को आपकी अपेक्षा के अनुसार काम करना चाहिए।

निर्देशिका बदल रहा है और dir set autochdirread here

6

को पढ़ने के लिए कर सकते हैं वास्तव में, मेरा आखिरी जवाब काम नहीं करता है क्योंकि एक बार NERDTree किया गया है खोला, यह नए बफर डीआईआर में फिर से नहीं खुलता है। इसे NERDTreeFind के समान काम करना चाहिए लेकिन इसमें टॉगल सुविधा नहीं है।

मैंने एक फ़ंक्शन बनाया और इसे मेरी कुंजी पर मैप किया और अब यदि आप विम-रेल प्लगइन रखते हैं तो यह रूबी प्रोजेक्ट खोलने पर पूरी तरह से काम करता है।

अपने vimrc को यह करें:

function! NTFinderP() 
    "" Check if NERDTree is open 
    if exists("t:NERDTreeBufName") 
     let s:ntree = bufwinnr(t:NERDTreeBufName) 
    else 
     let s:ntree = -1 
    endif 
    if (s:ntree != -1) 
     "" If NERDTree is open, close it. 
     :NERDTreeClose 
    else 
     "" Try to open a :Rtree for the rails project 
     if exists(":Rtree") 
      "" Open Rtree (using rails plugin, it opens in project dir) 
      :Rtree 
     else 
      "" Open NERDTree in the file path 
      :NERDTreeFind 
     endif 
    endif 
endfunction 


"" Toggles NERDTree 
map <silent> <F1> :call NTFinderP()<CR> 

अब यह काम करना चाहिए।


पिछला जवाब नीचे:

आप कुंजी मैप कर सकते आप इस तरह NERDTree खोलने के लिए (.vimrc में) का उपयोग करें:

map <silent> <F1> :NERDTreeToggle %:p:h<CR> 

यह करने के लिए अपने F1 कुंजी के नक्शे वर्तमान में सक्रिय बफर के पथ का उपयोग करके NERDTree टॉगल करें (खोलें/बंद करें)। यदि कोई बफर खुला नहीं है, तो यह में वर्तमान में लॉन्च मैकवीम निर्देशिका में खुलता है।

+1

यह मैं वास्तव में क्या था क्योंकि मैं विंडोज़ पर हूं और प्राथमिक रेल डेवलपर नहीं हूं, इसलिए मैंने "if (s: ntree! = -1) अन्य" बस कॉल किया: NERDTreeFind। –

+0

क्या कोई मुझे यह समझने में मदद कर सकता है कि "टी: NERDTreeBufName" का क्या अर्थ है? – zjk

1

अपने .vimrc को

au VimEnter,BufWinEnter * NERDTreeFind 

जोड़ें।

  • VimEnter भाग इसे लोड पर काम करता है।
  • BufWinEnter ऐसा करता है कि आप एक नई फ़ाइल खोलें।
  • * यह बताता है
  • NERDTreeFind

srcs चलाने के लिए आदेश है सभी फाइलों के साथ ऐसा करना: http://vimdoc.sourceforge.net/htmldoc/autocmd.html

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

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