Bagaimana cara membuka dan menutup NERDTree (beralih tampilan NERDTree) menggunakan satu penekanan tombol?

21

Kadang-kadang selama alur kerja saya, saya mungkin ingin membuka / mencari file saat bepergian. Saya ingin memetakan satu tombol (misalnya F6) untuk membuka dan menutup NERDTree (mis. Saya ingin mengaktifkan tampilan NERDTree). Juga, saya ingin NERDTree untuk menampilkan file dan folder tersembunyi dalam tampilan toggled dan saya juga ingin menutup secara otomatis ketika saya membuka file untuk diedit jika itu mungkin. Terima kasih!

evil_potato
sumber
1
Hai, selamat datang di situs ini! Harap diingat bahwa lebih baik mengajukan beberapa pertanyaan daripada satu dengan poin yang berbeda. yaitu di sini Anda dapat mengajukan pertanyaan lain mengenai file dan folder tersembunyi, karena pertanyaan utamanya jelas tentang sakelar (yang sudah Anda dapatkan jawabannya). Juga jangan lupa membaca dokumentasi plugin dan menghabiskan waktu berjam-jam di :h;)
nobe4

Jawaban:

29

Di vimrcadd Anda

nmap <F6> :NERDTreeToggle<CR>

di mana <F6>kunci yang ingin Anda petakan.

Atropo
sumber
Berfungsi bagus, tetapi bagaimana cara menampilkan file dan folder tersembunyi secara bersamaan?
evil_potato
3
@evil_potato shift + iakan beralih file yang tersembunyi. Jika Anda ingin menetapkan sebagai perilaku default, tambahkan let NERDTreeShowHidden=1ke.vimrc
Atropo
3
@evil_potato Juga untuk menutup secara otomatis saat membuka file untuk diedit, tambahkan let NERDTreeQuitOnOpen=1ke.vimrc
dNitro
9

Untuk membuka NerdTree:

:NERDTreeFocus

Untuk beralih di antara nerdtree dan file yang dibuka windows:

ctrl + ww (double w)

atau

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

Untuk menutup NerdTree (di jendela nerdtree):

:q
Ardi Nusawan
sumber
3

Ini akan melakukan persis apa yang Anda minta:

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

Jika Anda ingin menutup jendela NERDTree, pastikan Anda berada di dalam menu NERDTree. Anda dapat beralih windows dengan menggunakan ctrl+wlalu ketik :quntuk menutup jendela NERDTree sehingga Anda akan ditinggalkan dengan jendela untuk mengedit kode Anda.

philip
sumber
Ini persis apa yang saya cari tetapi bagaimana dengan membukanya lagi, apakah saya perlu memetakan kunci lain atau adakah jalan pintas asli yang akan membuka NERDTree lagi?
Deesbek
0

Fungsi berikut melacak buffer netrw dan panggilan yang Lexploresesuai. Tambahkan ke Anda .vimrcdan pilih kunci pemetaan Anda.

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>
Fabijan Bajo
sumber
4
Bisakah Anda menjelaskan bagaimana ini lebih baik daripada perintah NERDTreeToggleyang datang dengan NerdTree?
statox