Apakah ada cara untuk menyaring nama file dari "oldfiles" vim, mungkin menggunakan pola?


0

Saya menggunakan vim :browse oldfiles banyak untuk mengedit file saya baru saja bekerja dengan. Namun, ada beberapa file, seperti COMMIT_EDITMSG yang dihasilkan secara otomatis git, yang mengacaukan daftar itu dan yang tidak perlu saya edit secara eksplisit. Apakah ada cara untuk menyaring nama file agar tidak ditampilkan (atau, lebih baik) disimpan dalam daftar itu, mungkin menggunakan regex atau sejenisnya?

Jawaban:


1

Anda dapat menggunakan fungsi (cepat) di bawah untuk memfilter pesan komit dari v:oldfiles variabel sebelum penjelajahan aktual:

function! CleanBrowse()
    call filter(v:oldfiles, 'v:val !~ "COMMIT_EDITMSG"')
    browse :oldfiles
endfunction
nnoremap <F6> :call CleanBrowse()<CR>

Itu tidak mengubah konten Anda ~/.viminfo jadi sepertinya relatif aman.

Informasi lebih lanjut:

:h :oldfiles
:h v:oldfiles
:h list-functions
:h filter()
:h !~

Saya tidak tahu cara untuk memutuskan apa yang harus dan mana yang tidak boleh disimpan ~/.viminfo tetapi saya ingin tahu untuk belajar.


Itu bekerja. Sayangnya itu tidak mempengaruhi daftar file yang disimpan, yang berarti (dalam kasus saya misalnya) hanya 19 entri yang ditampilkan daripada 20, setelah COMMIT_EDITMSG disaring. Tapi itu membersihkan daftar, terima kasih.
Andrew Ferrier

Anda dapat dengan mudah menghapus COMMIT_EDITMSG garis dari Anda ~/.viminfo dengan sesuatu seperti :g/COMMIT_EDITMSG/d tapi v:oldfiles didefinisikan saat startup sehingga Anda harus me-restart Vim setiap kali Anda melakukan pembersihan itu.
romainl
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.