Bagaimana cara mengakses file yang terakhir digunakan dengan memilih dari daftar?

8

Saya ingin melakukan penekanan tombol untuk menampilkan daftar file yang baru saja digunakan untuk memilih satu untuk diedit.

  • Apa yang harus saya sediakan untuk itu?

Dan terkait,

  • Bagaimana cara mengelola riwayat file yang baru digunakan untuk digunakan?
  • Ini harus mendukung mengecualikan nama file atau subdirektori.
Volker Siegel
sumber
Maukah Anda memperluas sedikit tentang apa yang Anda maksud dengan "dukungan tidak termasuk ..."? Apakah maksud Anda bahwa Anda ingin menampilkan daftar semua file kecuali beberapa yang cocok dengan suatu pola, atau bahwa Anda ingin mengecualikan file tertentu agar tidak pernah muncul dalam daftar? (Pilihan terakhir adalah jawaban dari apa yang dilakukan @ muru autocmd; yang pertama sepertinya akan lebih berguna dan mungkin lebih mudah untuk dicapai.)
Kyle Strand
@KyleStrand saya sedang memikirkan varian pertama, tidak termasuk file jika path cocok dengan salah satu dari daftar pola. Misalnya, polanya bisa seperti *.tmp,/tmp/*,/mnt/foo/*.
Volker Siegel

Jawaban:

10

Anda dapat menggunakan :browseperintah untuk itu:

:browse oldfiles

Untuk penekanan tombol, petakan:

nnoremap <Leader>o :browse oldfiles<cr>

Kemudian Anda dapat menekan Leader odalam mode normal untuk melihat daftar file.

Dari :help v:oldfiles:

                                        v:oldfiles oldfiles-variable
v:oldfiles      List of file names that is loaded from the viminfo file on
                startup.  These are the files that Vim remembers marks for.
                The length of the List is limited by the ' argument of the
                'viminfo' option (default is 100).
                When the viminfo file is not used the List is empty.

Jadi, untuk membatasi pada, katakanlah, 50 file, Anda dapat mengatur viminfo:

set viminfo+='50

Saya tidak melihat cara mudah mengecualikan file dari ini, selain menonaktifkan viminfomenggunakan autocmd:

autocmd BufNew *.sh set viminfo=

Ini memiliki kelemahan besar dalam menonaktifkan semua riwayat untuk setiap sesi yang melibatkan file yang cocok.

muru
sumber
Itu fitur luar biasa yang belum pernah saya dengar sebelumnya.
Kyle Strand
Mungkinkah menggabungkan browseperintah dengan unitedan / atau PipeCmduntuk mencapai penyaringan yang diinginkan OP?
Kyle Strand
@KyleStrand saya tidak pernah menggunakan keduanya, jadi saya tidak tahu.
muru
4

Lihat fitur MRU Ctrl-P . Setelah Anda menginstalnya, ketik :CtrlPMRUFilesdan itu akan membuka pencari fuzzy di bagian bawah layar yang dapat Anda fuzzy mencari.masukkan deskripsi gambar di sini

CharlesL
sumber