Jawaban:
Hal pertama yang terlintas di pikiran saya adalah menggunakan touch
perintah yang melintasinya nama file di bawah kursor.
:map <silent> <leader>cf :!touch <c-r><c-p><cr><cr>
Tetapi ada solusi Vim murni portabel lintas platform. Fungsi writefile
bawaan menulis daftar ke file, baris demi baris. Secara alami, ketika daftar input kosong, itu membuat file kosong. (Lihat :help writefile
detailnya.) Kita dapat memanfaatkan efek samping ini:
:map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>
Perhatikan bahwa ekstraksi nama file dapat disesuaikan dengan menggunakan expand
pola yang berbeda (lihat :help expand()
).
Omong-omong, jika seseorang ingin tidak membuat file, tetapi hanya untuk membukanya untuk diedit, seseorang dapat mendefinisikan gf
pemetaan seperti:
:map <leader>gf :e <cfile><cr>
di mana :e
perintah dapat diganti dengan :tabe
atau perintah serupa.
Saya mengambil jawaban yang sangat baik oleh ib di atas dan memperluasnya sebagai berikut. Tujuan saya adalah menggunakan vim untuk membuat file penurunan harga baru sesuai kebutuhan untuk wiki (dalam hal ini wiki Gollum)
Saya pertama kali mencoba:
map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>`
hal di atas berfungsi seperti yang dinyatakan dalam jawaban. Namun, pada awalnya saya pikir itu tidak berfungsi karena saya tidak benar-benar melihat pembukaan file di vim. Menggunakan bit kode kedua di bawah ini akan membuka file baru - ini lebih dari apa yang saya cari. Jadi saya menggabungkannya dan mencoba:
map <leader>cf :e <cfile><cr>
tetapi itu tidak berfungsi untuk wiki karena ketika Anda mencoba membuat file baru di wiki menggunakan sintaksis seperti [[the-new-file]]
sintaksis wiki tidak memungkinkan untuk ekstensi file dalam kurung. Namun, Vim perlu mengetahui ekstensi saat membuat file baru agar ini berfungsi. Dalam hal ini saya menggunakan:
map <leader>cf :e <cfile>.md<cr>
jadi saya bisa membuat file penurunan harga baru. Ada beberapa cara untuk menyesuaikan ini lebih lanjut (misalnya dengan tidak melakukan hardcoding pada ekstensi) tetapi cara di atas berfungsi dengan baik untuk kebutuhan saya. Jika saya memerlukan ekstensi lain (misalnya untuk menyimpan file .wiki) saya mungkin hanya akan mengambil rute sederhana dan membuat peta lain seperti:
map <leader>cwf :e <cfile>.wiki<cr>
Sebagai manfaat tambahan, Anda dapat menggunakan perintah yang sama untuk membuka file penurunan harga yang sudah ada ( gf
perintah standar tidak akan berfungsi di sini karena ekstensi file tidak ada).
gf
berfungsi jika set suffixesadd=.wiki
. Versi perbaikan dari Anda cf
akan menjadi salah satu yang dihormati suffixesadd
, setidaknya dalam kasus di mana itu hanya berisi satu item.
<cfile>
bukan<C-r><C-f>