Saya mencari cara yang elegan di Vimscript untuk memeriksa apakah file ada di direktori saat ini.
Saya datang dengan kode di bawah ini tetapi saya tidak yakin apakah itu solusi yang paling elegan (saya akan menetapkan opsi Vim jika file tersebut ada). Adakah cara agar tidak perlu membandingkan nama file lagi?
Mungkin menggunakan fungsi bawaan yang berbeda dari Vim?
:function! SomeCheck()
: if findfile("SpecificFile", ".") == "SpecificFile"
: echo "SpecificFile exists"
: endif
:endfunction
vim
file-exists
StefanB
sumber
sumber
filereadable
menyebutkan dapat Anda gunakanglob
jika Anda tidak peduli dengan keterbacaan.Beberapa komentar mengungkapkan kekhawatiran tentang
filereadable
danglob
sebagai gantinya. Ini mengatasi masalah memiliki file yang memang ada, tetapi izin mencegahnya untuk dibaca. Jika Anda ingin mendeteksi kasus seperti itu, berikut ini akan berfungsi:sumber
E116: Invalid arguments for function
. Bagaimana Anda menentukan file relatif terhadap direktori home untuk memeriksa plugin? (Lihat juga di sini )~
, tapi saya tidak yakin. Argumen apa yang Anda berikan ketika Anda mendapatkan kesalahan itu?~
, dan itu memberikan kesalahan itu. Sekarang saya mencoba lagi dan berhasil ... :-)Memberi lebih banyak visibilitas untuk komentar metaphy pada jawaban yang diterima:
filereadable
adalah apa yang diperlukan, tetapi ada langkah praktis ekstraexpand
, jika Anda menggunakan~
di jalur Anda:Sebagai contoh
:echo filereadable('~/.vimrc')
memberi0
,:echo filereadable(expand('~/.vimrc'))
memberi1
sumber