Cách thêm NERDTree vào .vimrc của bạn


118

Làm cách nào để thêm NERDTree vào .vimrc của tôi?


Tôi đã cập nhật câu trả lời của mình. Tôi không chắc bạn có thể thêm nó vào .vimrc của mình để 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 :)
Steven Kryskalla 19/09/09

Câu trả lời:


199

Được rồi, phiên bản trước hơi ngắn, nhưng câu trả lời bạn đang tìm là thêm dòng bên dưới vào ~/.vimrctệp 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 Vim khởi động, nhưng vì nó phụ thuộc vào nhiều plugin khác nhau được tải, bạn không muốn chạy nó cho đến khi tất cả quá trình khởi tạo hoàn tất:

autocmd VimEnter * NERDTree

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

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

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

Nếu bạn đang sử dụng một tập lệnh như vimpager, bạn nên chuyển những dòng này sang /.vim/after/plugin/NERD_tree.vimtập lệnh của mình để nó không cố gắng thực thi khi tắt các plugin.
Joshua Olson

9
Bạn không cần hai autocmd riêng biệt của:autocmd VimEnter * NERDTree | wincmd p
Dave James Miller

Tôi có thể chỉ định đường dẫn thực tế mà tôi muốn bắt đầu không? - Đúng là làm việc với một thư mục (cuối cùng chỉ không có dấu gạch chéo)
AturSams 15/09

1
Tôi thích làm như sau: autocmd VimEnter * NERDTreevà sau đó autocmd VimEnter * if argc() | wincmd p | endif. Bằng cách đó, con trỏ ở trên NERDTree nếu tôi chưa mở một tệp cụ thể, nhưng nếu tôi đã chọn một tệp, nó sẽ bắt đầu trong cửa sổ chính.
user2275806

20

Tôi chỉ muốn thấy NERDTree khi khởi động vim mà không có đối số tệp, vì vậy tôi đã thêm cái này vào .vimrc của mình:

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

19

Bạn đang sử dụng hệ thống Windows hoặc unix-y?

Nếu bạn đang sử dụng hệ thống unix-y, bạn sẽ đặt các plugin vào ~/.vim/plugin. Đâ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 đó nó bắt đầu hoạt động ngay lập tức. Hãy thử chạy vim như thế này:

$ vim .

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

Nếu bạn đang sử dụng Windows, bạn đặt các plugin ở đây: C:\Program Files\Vim\vim70\plugin


Để NERDTree tự động tải khi bạn khởi động vim, hãy 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 điều này trong .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 ở bên trái cửa sổ.

Bạn cũng có thể thêm một phím tắt để khởi động NERDTree .vimrctheo 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 Escthì tnó sẽ mở NERDTree.


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

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

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

8

Theo hướng dẫn của NERDTree, bạn có thể chỉ cần sử dụng bee.vim . Cài đặt nó 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 cái này vào .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 tự động mở NERDTree khi Vim khởi động, hãy thêm thông tin sau vào .vimrc của bạn:

autocmd vimenter * NERDTree

7

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

Nếu bạn gọi vim --nopluginhoặc sử dụng một tập lệnh sử dụng --nopluginchế độ 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, hãy đặt lệnh vào ~/.vim/after/plugin/NERD_tree.vimthay thế:

autocmd VimEnter * NERDTree

Và nó cũng có thể là một ý tưởng hay để kiểm tra cái NERDtreecó sẵn, tức là:

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

1
Tốt Một ... Tôi cũng sử dụng Vim như một máy nhắn tin và chỉ cần thêm một cuộc tranh cãi để autocommands vô hiệu hóa ... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
Eddie B

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.