単一のキーストロークを使用して、NERDTreeを開いたり閉じたり(NERDTreeビューを切り替え)するにはどうすればよいですか?


20

ワークフロー中に、外出先でファイルを開いたり検索したりすることがあります。1つのキー(F6など)をマッピングして、NERDTreeを開いたり閉じたりしたい(つまり、NERDTreeビューを切り替えたい)。また、NERDTreeで非表示のファイルとフォルダーをトグルビューで表示し、可能な場合はファイルを開いて編集するときに自動的に閉じるようにします。ありがとう!


1
こんにちは、サイトへようこそ!異なる点を持つ質問ではなく、複数の質問をする方が良いことに留意してください。つまり、ここでは、隠しファイルと隠しフォルダに関する別の質問をすることができます。なぜなら、主な質問はトグルに関するものだからです(すでに答えが得られています)。また、プラグインのドキュメントを読み、何時間も過ごすことを忘れないでください:h;)
nobe4

回答:


28

あなたのvimrc追加で

nmap <F6> :NERDTreeToggle<CR>

<F6>マップするキーはどこですか。


うまく機能しますが、非表示のファイルとフォルダーを同時に表示するにはどうすればよいですか?
evil_potato

3
@evil_potato shift + iは隠しファイルを切り替えます。デフォルトの動作として設定する場合は、追加let NERDTreeShowHidden=1してください.vimrc
アトロポ

3
@evil_potatoまた、編集用にファイルを開いたときに自動的に閉じるためlet NERDTreeQuitOnOpen=1にあなたに追加.vimrc
-dNitro

9

NerdTreeを開くには:

:NERDTreeFocus

nerdtreeとファイルを開いたウィンドウの間で切り替えるには:

ctrl + ww (double w)

または

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

NerdTreeを閉じるには(nerdtreeウィンドウで):

:q

3

これは、あなたが要求したことを正確に行います:

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

1

NERDTreeウィンドウを閉じる場合は、NERDTreeメニュー内にいることを確認してください。コードを編集するためのウィンドウが残るように、ctrl+w次にタイプ:qしてNERDTreeウィンドウを閉じることでウィンドウを切り替えることができます。


これはまさに私が探していたものですが、もう一度開くことについては、別のキーをマップする必要がありますか、NERDTreeを再び開くネイティブショートカットがありますか?
デスベク

0

次の関数は、開いているnetrwバッファーを追跡し、Lexploreそれに応じて呼び出します。に追加して、.vimrcマッピングキーを選択します。

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
NERDTreeToggleNerdTreeに付属のコマンドよりも優れていることを説明できますか?
statox
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.