Saat menggunakan plugin NERDTree , perilaku default adalah membuka file baru dan menjaga buffer NERDTree terbuka. Yang ingin saya lakukan adalah menjaga perilaku default ini tetapi juga menimpanya ketika saya menginginkannya sehingga buffer NERDTree akan ditutup setelah saya membuka file.
Saya tahu saya dapat menggunakan let NERDTreeQuitOnOpen=1
untuk secara otomatis menutup buffer NERDTree ketika saya membuka file baru tetapi opsi ini benar-benar mengesampingkan perilaku default (yang bukan yang saya inginkan).
Idealnya saya ingin tahu apakah ada fitur bawaan di NERDTree untuk melakukan apa yang saya inginkan. (Saya sudah mencari tetapi tidak menemukan hal seperti itu jadi saya kira itu tidak ada sebenarnya)
Dan jika itu tidak ada, saya punya dua ide:
Pertama adalah membuat fungsi yang akan diatur
NERDTreeQuitOnOpen
ke1
, buka file dan kemudian atur lagiNERDTreeQuitOnOpen
ke0
.Yang kedua adalah membuat pemetaan berikut:
map d<CR> <CR> :NERDTree <CR> :bd<CR>
yang membuka file (pertama<CR>
), kembali ke buffer NERDTree (:NERDTree <CR>
) dan menutup buffer ini (:bd <CR>
). Saya harus memperbaikinya sehingga pemetaan hanya ada di buffer NERDTree tapi saya merasa itu solusi yang sangat jelek dan saya pikir itu bisa diperbaiki.
Ide mana yang terbaik dan mengapa? Atau ada pilihan yang lebih baik?
sumber
map d<cr> <cr>:NERDTreeClose<cr>
untuk pemetaan?Jawaban:
Karena pertanyaannya sepertinya tidak menghasilkan banyak jawaban, saya hanya akan menjawabnya dengan saran dari @muru yang telah saya gunakan selama seminggu sebelum saya beralih ke netrw explorer. (Tentu saja jika pilihan jawaban yang lebih baik muncul, saya dengan senang hati akan menghapus tanda saya sebagai diterima dan menerima yang baru)
Idenya adalah menggunakan pemetaan berikut:
Yang membuka file seperti biasanya dilakukan dan kemudian memanggil fungsi yang menutup buffer NERDTree di mana pun kursor berada.
EDIT: Baru-baru ini saya beralih kembali ke NERDTree dan mengerjakan ulang solusi saya: Pemetaan yang saya sarankan sebelumnya berfungsi tetapi karena ada di setiap buffer saya harus menekan dua kali dsetiap kali saya ingin menghapus sesuatu yang sangat mengganggu. (Mungkin saya bisa mengubah
timeout
pengaturan tetapi saya suka cara itu diatur untuk saya, juga saya tidak ingin memetakannya pada kombinasi tombol lain).Jadi saya mengganti solusi pertama saya dengan baris berikut ke saya
.vimrc
:Dengan cara ini pemetaan dibuat hanya di
NERDTree
buffer dan tidak mengacaukan alur kerja saya di buffer lainnya.sumber