2009-09-19 20 views
106

Bạn làm như thế nào?Làm thế nào để bạn thêm NERDTree vào vimrc của bạn?

+0

I đã cập nhật câu trả lời của tôi. Tôi không chắc bạn có thể thêm nó vào .vimrc của bạn để làm những gì bạn muốn, nhưng tôi biết bạn có thể chạy vim từ dòng lệnh theo cách tự động mở NERDTree. Hãy xem :) –

+0

Bạn đang trả lời dưới đây. –

+0

NERDTree có mặc định không đáp ứng kỳ vọng của những người từ thế giới Visual Studio. Không có gì hoạt động như mong đợi. Sản phẩm DIY, như hầu hết PMNM. Đây là $ 500 đã chi tiêu của tôi .vimrc cho NERDTree: https://gist.github.com/avesus/1954d9384d86cc1e39cb2b2eff7017b7 –

Trả lời

190

Được rồi, phiên bản trước là một chút ngắn gọn, nhưng câu trả lời bạn đang tìm kiếm là thêm dòng bên dưới vào tệp ~/.vimrc của bạn. Nó nói với vim rằng bạn muốn thiết lập một lệnh để chạy khi bắt đầu vim, nhưng vì nó phụ thuộc vào các plugin khác nhau được nạp, bạn không muốn chạy nó cho đến khi tất cả khởi tạo xong. Dòng dưới đây thực hiện điều này.

autocmd VimEnter * NERDTree 

Tuy nhiên, nếu bạn đang khó chịu bởi thực tế là con trỏ luôn luôn bắt đầu trong cửa sổ NERDTree, bạn có thể thêm một autocommand thứ hai mà sẽ di chuyển con trỏ vào cửa sổ chính, như vậy:

autocmd VimEnter * NERDTree 
autocmd VimEnter * wincmd p 
+0

Tôi không biết tại sao nhưng điều này không hiệu quả đối với tôi. Tôi phải gọi: NERDTreeToggle bên trong vim để hiển thị nerdtree anyway – hgf

+0

làm việc cho tôi tốt. ubuntu 10.10. Vim 7.2 lớn – Stann

+0

Nếu bạn đang sử dụng một tập lệnh như vimpager, bạn nên di chuyển các dòng này sang tập lệnh '/ .vim/after/plugin/NERD_tree.vim' của bạn, để nó không cố gắng thực hiện với các plugin bị tắt. –

18

Bạn có đang sử dụng hệ thống Windows hoặc Unix không?

Nếu bạn đang sử dụng hệ thống unix-y, bạn đặt các plugin vào ~/.vim/plugin. Dưới đây là thư mục plugin của tôi trông như thế nào:

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

Sau khi thư mục đó bắt đầu hoạt động ngay lập tức. Hãy thử chạy vim như sau:

$ vim . 

Nó sẽ mở thư mục hiện tại trong chế độ xem cây NERD.

Nếu bạn đang ở trên Windows bạn đặt plugin ở đây: C:\Program Files\Vim\vim70\plugin


Để có được NERDTree để nạp tự động khi bạn khởi động vim, chạy nó như thế này từ dòng lệnh:

$ vim -c "NERDTree" some_file.txt 

Bạn có thể đặt bí danh cho số này trong số .bashrc:

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

Bây giờ bất cứ khi nào bạn chạy vimt (thay vì vim), bạn cũng sẽ mở NERDTree ở phía bên trái của cửa sổ.

Bạn cũng có thể thêm một phím tắt để bắt đầu NERDTree trong .vimrc bạn theo cách này:

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

nmap <ESC>t :OpenNERDTree<CR> 

Bây giờ khi bạn nhấn Esc sau đó t nó sẽ bật NERDTree mở.

+0

Tôi đang chạy một máy tính UNIX-y. Tôi đã cài đặt NERDTree, những gì tôi cần là có NERDTree để bắt đầu khi tôi gõ vim trong dòng lệnh. Vì vậy, một trình duyệt tập tin luôn mở ra bên trái, như trong Textmate. Tôi không biết phải đưa cái gì vào vimrc để làm điều này, tôi đã thử: NERDTree nhưng dường như nó không nhận ra lệnh ... – chutsu

+2

Tôi nghĩ rằng có một: NERDTreeToggle được xây dựng trong ánh xạ mà bạn có thể ánh xạ tới mà làm cho chức năng tùy chỉnh của bạn khá dư thừa. –

+1

Mẹo tuyệt vời 'alias vimt = 'vim -c" NERDTree "$ 1'' – pedrosaurio

7

Câu trả lời ở đây có vấn đề nhỏ.

Nếu bạn gọi vim --noplugin hoặc sử dụng một kịch bản có sử dụng --noplugin chế độ như vimpager, nó sẽ gây ra lỗi này:

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

Để tránh điều này, đặt lệnh trong ~/.vim/after/plugin/NERD_tree.vim thay vì:

autocmd VimEnter * NERDTree 

Và nó cũng có thể là một ý tưởng tốt để kiểm tra rằng NERDtree có sẵn là tốt, tức là:

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

Tốt nhất ... Tôi cũng sử dụng Vim làm máy nhắn tin và chỉ cần thêm một đối số để tắt tự động ... 'xuất MANPAGER = 'col -bx | mvim -c ": đặt ft = man non nolist" -c ": autocmd!" -M -R ->/dev/null 2> & 1'' –

17

Tôi muốn thấy NERDTree chỉ khi tôi bắt đầu vim không có đối số tập tin, vì vậy tôi thêm này để vimrc của tôi:

autocmd VimEnter * if !argc() | NERDTree | endif 
7
" NERD Tree 
nmap <silent> <special> <F2> :NERDTreeToggle<RETURN> 
7

Theo các hướng dẫn trên https://github.com/scrooloose/nerdtree, bạn có thể chỉ cần sử dụng pathogen.vim (https://github.com/tpope/vim-pathogen). Cài đặt mầm bệnh với:

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

Thêm này để vimrc của bạn:

execute pathogen#infect() 

sau đó cài đặt NERDTree:

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

Và nếu bạn muốn mở một NERDTree tự động khi vim khởi động, thêm những điều sau đây cho vimrc của bạn:

autocmd vimenter * NERDTree 
Các vấn đề liên quan