Làm cách nào để mở và đóng NERDTree (chuyển đổi chế độ xem NERDTree) bằng một lần nhấn phím?


20

Đôi khi trong quy trình làm việc của mình, tôi có thể muốn mở / tìm kiếm tệp khi đang di chuyển. Tôi muốn ánh xạ một khóa duy nhất (giả sử F6) để mở và đóng NERDTree (tức là tôi muốn chuyển đổi chế độ xem NERDTree). Ngoài ra, tôi muốn NERDTree hiển thị các tệp và thư mục ẩn trong chế độ xem được bật và tôi cũng muốn nó tự động đóng khi tôi mở tệp để chỉnh sửa nếu có thể. Cảm ơn !


1
Xin chào, chào mừng đến với trang web! Xin lưu ý rằng tốt hơn là hỏi nhiều câu hỏi thay vì một câu hỏi với các điểm khác nhau. tức là ở đây bạn có thể hỏi một câu hỏi khác liên quan đến các tập tin và thư mục ẩn, bởi vì câu hỏi chính chắc chắn là về việc chuyển đổi (mà bạn đã có câu trả lời cho). Cũng đừng quên đọc tài liệu về plugin và dành hàng giờ đồng hồ :h;)
nobe4

Câu trả lời:


28

Trong vimrcphần thêm của bạn

nmap <F6> :NERDTreeToggle<CR>

đâu <F6>là chìa khóa bạn muốn lập bản đồ.


Hoạt động tuyệt vời nhưng làm cách nào để hiển thị các tệp và thư mục ẩn cùng một lúc?
evil_potato

3
@evil_potato shift + isẽ chuyển các tập tin ẩn. Nếu bạn muốn đặt làm hành vi mặc định, hãy thêm let NERDTreeShowHidden=1vào.vimrc
Atropo

3
@evil_potato Cũng để tự động đóng khi mở tệp để chỉnh sửa thêm let NERDTreeQuitOnOpen=1vào.vimrc
dNitro

9

Để mở NerdTree:

:NERDTreeFocus

Để chuyển giữa nerdtree và tập tin đã mở windows:

ctrl + ww (double w)

hoặc là

ctrl + w + (h/j/k/l)

Để đóng NerdTree (trong cửa sổ nerdtree):

:q

3

Điều này sẽ làm chính xác những gì bạn đã yêu cầu:

nnoremap <silent> <expr> <F6> g:NERDTree.IsOpen() ? "\:NERDTreeClose<CR>" : bufexists(expand('%')) ? "\:NERDTreeFind<CR>" : "\:NERDTree<CR>"

1

Nếu bạn muốn đóng cửa sổ NERDTree, hãy đảm bảo bạn đang ở trong menu NERDTree. Bạn có thể chuyển đổi các cửa sổ bằng cách sử dụng ctrl+wsau đó nhập :qđể đóng cửa sổ NERDTree để bạn sẽ được để lại với cửa sổ để chỉnh sửa mã của mình.


Đây chính xác là những gì tôi đang tìm kiếm nhưng về việc mở lại nó, tôi có cần ánh xạ một khóa khác hay có một phím tắt riêng sẽ mở lại NERDTree không?
Deesbek

0

Các chức năng sau đây theo dõi bộ đệm netrw mở và các cuộc gọi Lexploretương ứng. Thêm nó vào của bạn .vimrcvà chọn khóa ánh xạ của bạn.

let g:NetrwIsOpen=0

function! ToggleNetrw()
    if g:NetrwIsOpen
        let i = bufnr("$")
        while (i >= 1)
            if (getbufvar(i, "&filetype") == "netrw")
                silent exe "bwipeout " . i 
            endif
            let i-=1
        endwhile
        let g:NetrwIsOpen=0
    else
        let g:NetrwIsOpen=1
        silent Lexplore
    endif
endfunction

noremap <silent> <F2> :call ToggleNetrw()<CR>

4
Bạn có thể giải thích nó tốt hơn lệnh NERDTreeToggleđi kèm với NerdTree không?
statox
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.