NERDTree को अपने .vimrc में कैसे जोड़ें


118

मैं अपने .vimrc में NERDTree को कैसे जोड़ूँ?


मैंने अपना उत्तर अपडेट कर दिया। मुझे यकीन नहीं है कि आप इसे अपने .vimrc में जोड़ सकते हैं जो आप चाहते हैं, लेकिन मुझे पता है कि आप कमांड लाइन से विम को इस तरह से चला सकते हैं जो NERDTree को स्वचालित रूप से खोलता है।
जरा

जवाबों:


199

ठीक है, पिछला संस्करण थोड़ा सा जटिल था, लेकिन आप जिस उत्तर की तलाश कर रहे हैं, वह आपकी ~/.vimrcफ़ाइल में नीचे की पंक्ति को जोड़ना है । यह विम को बताता है कि आप विम शुरू होने पर चलाने के लिए एक कमांड सेटअप करना चाहते हैं, लेकिन चूंकि यह विभिन्न प्लगइन्स को लोड किए जाने पर निर्भर करता है, आप इसे तब तक नहीं चलाना चाहते जब तक सभी इनिशियलाइज़ेशन समाप्त न हो जाएं:

autocmd VimEnter * NERDTree

यदि, हालांकि, आप इस तथ्य से नाराज हैं कि कर्सर हमेशा एनईआरडीट्री विंडो में शुरू होता है, तो आप एक दूसरा ऑटोकॉमैंड जोड़ सकते हैं जो कर्सर को मुख्य विंडो में ले जाएगा:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

मुझे पता नहीं क्यों लेकिन यह मेरे लिए काम नहीं करता है। मुझे कॉल करना है: NERDTreeToggle वीम के अंदर वैसे भी nddtree दिखाने के लिए
hgf

यदि आप विम्पीगर जैसी स्क्रिप्ट का उपयोग कर रहे हैं, तो आपको इन पंक्तियों को अपनी /.vim/after/plugin/NERD_tree.vimस्क्रिप्ट में स्थानांतरित करना चाहिए , ताकि यह बंद किए गए प्लगइन्स के साथ निष्पादित करने का प्रयास न करे।
जोशुआ ओल्सन

9
आपको दो अलग-अलग ऑटोकैड की जरूरत नहीं है:autocmd VimEnter * NERDTree | wincmd p
डेव जेम्स मिलर

क्या मैं केवल उस वास्तविक पथ को निर्दिष्ट कर सकता हूं जिसे मैं शुरू करना चाहता हूं? -
युप

1
मैं निम्नलिखित करना पसंद करता हूं: autocmd VimEnter * NERDTreeऔर फिर autocmd VimEnter * if argc() | wincmd p | endif। इस तरह, कर्सर NERDTree पर है यदि मैंने एक विशिष्ट फ़ाइल नहीं खोली है, लेकिन अगर मैंने कोई फ़ाइल चुनी तो वह मुख्य विंडो में शुरू होती है।
user2275806

20

मैं NERDTree को केवल तभी देखना पसंद करता हूं, जब मैं फ़ाइल तर्क के बिना विम शुरू करता हूं, इसलिए मैंने इसे अपने .vimrc में जोड़ा:

autocmd VimEnter * if !argc() | NERDTree | endif

19

क्या आप विंडोज या यूनिक्स-वाई सिस्टम पर हैं?

यदि आप यूनिक्स-वाई सिस्टम पर हैं तो आप प्लग इन करते हैं ~/.vim/plugin। यहाँ मेरा प्लगइन निर्देशिका कैसा दिखता है:

$ ls ~/.vim/plugin
NERD_tree.vim  scratch.vim  scratchfind.vim

इसके बाद वह तुरंत काम करना शुरू कर देता है। इस तरह से चलने की कोशिश करें:

$ vim .

इसे NERD ट्री दृश्य में वर्तमान निर्देशिका को खोलना चाहिए।

यदि आप विंडोज पर हैं तो आप यहां प्लगइन्स लगाएं: C:\Program Files\Vim\vim70\plugin


जब आप vim शुरू करते हैं तो NERDTree को स्वचालित रूप से लोड करने के लिए, इसे कमांड लाइन से इस तरह से चलाएं:

$ vim -c "NERDTree" some_file.txt

आप इसमें अपने लिए एक उपनाम निर्धारित कर सकते हैं .bashrc:

alias vimt='vim -c "NERDTree" $1'

अब जब भी आप vimt(इसके बजाय vim) दौड़ेंगे तो आप विंडो के बाईं ओर NERDTree भी खोलेंगे।

आप अपने .vimrcतरीके से NERDTree शुरू करने के लिए एक शॉर्टकट कुंजी भी जोड़ सकते हैं :

function OpenNERDTree()
  execute ":NERDTree"
endfunction
command -nargs=0 OpenNERDTree :call OpenNERDTree()

nmap <ESC>t :OpenNERDTree<CR>

अब जब आप हिट करेंगे Escतो tयह NERDTree को खोलेगा।


मैं एक यूनिक्स-वाई मशीन चला रहा हूं। मेरे पास NERDTree इंस्टॉल है, कमांड लाइन में vim टाइप करने के लिए NERDTree को शुरू करने के लिए मुझे जो कुछ भी चाहिए वह है। ताकि एक फ़ाइल ब्राउज़र हमेशा बाईं ओर खुलता है, जैसे टेक्स्टमेट में। मुझे नहीं पता कि इसे करने के लिए क्या करना है, मैंने कोशिश की: NERDTree लेकिन यह कमांड को मान्यता नहीं देता है ...
chutsu

2
मैंने सोचा कि मैं इसमें शामिल हूं: NERDTreeToggle मैपिंग में बनाया गया है, जिसमें आप मैप कर सकते हैं जो आपके कस्टम फ़ंक्शन को बेमानी बनाता है।
गाविन गिल्मर

1
उत्कृष्ट टिपalias vimt='vim -c "NERDTree" $1'
पेड्रोसोरियो

8

प्रति NERDTree निर्देश तुम सिर्फ उपयोग कर सकते हैं pathogen.vim । इसे स्थापित करें:

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -Sso ~/.vim/autoload/pathogen.vim \
        https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

इसे अपने .vimrc में जोड़ें:

execute pathogen#infect()

उसके बाद NERDTree स्थापित करें:

cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git

और यदि आप विम शुरू होने पर स्वचालित रूप से एक NERDTree को खोलना चाहते हैं, तो अपने .vimrc में निम्न जोड़ें:

autocmd vimenter * NERDTree

7

यहां के जवाबों में एक मामूली समस्या है।

यदि आप vim --nopluginऐसी स्क्रिप्ट का उपयोग करते हैं या उसका उपयोग करते --nopluginहैं जो vimpager जैसे मोड का उपयोग करती है , तो यह इस त्रुटि का कारण बनेगी :

Error detected while processing VimEnter Auto commands for "*":
E492: Not an editor command: NERDTree

इससे बचने के लिए, ~/.vim/after/plugin/NERD_tree.vimइसके बजाय कमांड डालें :

autocmd VimEnter * NERDTree

और यह परीक्षण करने के लिए भी एक अच्छा विचार हो सकता है कि NERDtreeउपलब्ध है, अर्थात:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif

1
अच्छा एक ... मैं भी एक पेजर के रूप में विम का उपयोग करता हूं और बस ऑटोकॉमैंड्स को अक्षम करने के लिए एक तर्क जोड़ा ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
एडी बी

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.