ฉันจะเพิ่ม NERDTree ใน. vimrc ได้อย่างไร?
ฉันจะเพิ่ม NERDTree ใน. vimrc ได้อย่างไร?
คำตอบ:
โอเคเวอร์ชันก่อนหน้านี้ค่อนข้างสั้น แต่คำตอบที่คุณต้องการคือเพิ่มบรรทัดด้านล่างลงใน~/.vimrc
ไฟล์ของคุณ มันบอก Vim ว่าคุณต้องการตั้งค่าคำสั่งให้ทำงานเมื่อ Vim เริ่มทำงาน แต่เนื่องจากมันขึ้นอยู่กับปลั๊กอินต่างๆที่จะโหลดคุณจึงไม่ต้องการเรียกใช้จนกว่าการเริ่มต้นทั้งหมดจะเสร็จสิ้น:
autocmd VimEnter * NERDTree
อย่างไรก็ตามหากคุณรู้สึกรำคาญกับข้อเท็จจริงที่ว่าเคอร์เซอร์เริ่มต้นในหน้าต่าง NERDTree เสมอคุณสามารถเพิ่มคำสั่งอัตโนมัติที่สองซึ่งจะย้ายเคอร์เซอร์ไปที่หน้าต่างหลัก:
autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p
/.vim/after/plugin/NERD_tree.vim
สคริปต์ของคุณเพื่อที่จะไม่พยายามดำเนินการโดยปิดปลั๊กอิน
autocmd VimEnter * NERDTree | wincmd p
autocmd VimEnter * NERDTree
autocmd VimEnter * if argc() | wincmd p | endif
ด้วยวิธีนี้เคอร์เซอร์จะอยู่บน NERDTree หากฉันไม่ได้เปิดไฟล์ใดไฟล์หนึ่ง แต่ถ้าฉันเลือกไฟล์มันจะเริ่มในหน้าต่างหลัก
ฉันชอบดู NERDTree เฉพาะเมื่อฉันเริ่มเป็นกลุ่มโดยไม่มีข้อโต้แย้งของไฟล์ดังนั้นฉันจึงเพิ่มสิ่งนี้ใน. vimrc ของฉัน:
autocmd VimEnter * if !argc() | NERDTree | endif
คุณใช้ระบบ Windows หรือ unix-y?
หากคุณอยู่ในระบบ Unix-Y ~/.vim/plugin
ที่คุณใส่ในปลั๊กอิน นี่คือลักษณะของไดเร็กทอรีปลั๊กอินของฉัน:
$ ls ~/.vim/plugin
NERD_tree.vim scratch.vim scratchfind.vim
หลังจากนั้นจะเริ่มทำงานทันที ลองใช้ vim ดังนี้:
$ vim .
ควรเปิดไดเร็กทอรีปัจจุบันในมุมมองแผนผัง NERD
หากคุณใช้ Windows คุณใส่ปลั๊กอินที่นี่: C:\Program Files\Vim\vim70\plugin
หากต้องการให้ NERDTree โหลดโดยอัตโนมัติเมื่อคุณเริ่มต้นเป็นกลุ่มให้เรียกใช้สิ่งนี้จากบรรทัดคำสั่ง:
$ vim -c "NERDTree" some_file.txt
คุณสามารถตั้งนามแฝงสำหรับสิ่งนี้ได้ใน.bashrc
:
alias vimt='vim -c "NERDTree" $1'
ตอนนี้เมื่อใดก็ตามที่คุณเรียกใช้vimt
(แทนvim
) คุณจะเปิด NERDTree ทางด้านซ้ายของหน้าต่างด้วย
คุณยังสามารถเพิ่มคีย์ลัดเพื่อเริ่ม NERDTree ได้.vimrc
ด้วยวิธีนี้:
function OpenNERDTree()
execute ":NERDTree"
endfunction
command -nargs=0 OpenNERDTree :call OpenNERDTree()
nmap <ESC>t :OpenNERDTree<CR>
ตอนนี้เมื่อคุณกดEsc
แล้วt
มันจะเปิด NERDTree
alias vimt='vim -c "NERDTree" $1'
ตามคำแนะนำ 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 โดยอัตโนมัติเมื่อ Vim เริ่มทำงานให้เพิ่มสิ่งต่อไปนี้ใน. vimrc ของคุณ:
autocmd vimenter * NERDTree
คำตอบที่นี่มีปัญหาเล็กน้อย
หากคุณเรียก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
export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
" NERD Tree
nmap <silent> <special> <F2> :NERDTreeToggle<RETURN>