Saya tahu saya bisa menyelesaikan nama file / jalur dari direktori saat ini menggunakan ctrl + x, ctrl + f ( compl-filename
). Itu bekerja sangat baik dalam kombinasi dengan set autochdir, yang mengubah pembaruan direktori saat ini ke direktori buffer aktif.
Namun, saya mulai menggunakan airblade/vim-rooter
untuk membuat direktori saat ini sebagai folder "proyek". Sekarang penyelesaian nama file selalu dimulai dari folder proyek.
Pertanyaannya: Apakah ada cara untuk membuat penyelesaian nama file menggunakan direktori buffer aktif, bukan direktori saat ini? Atau solusi lain?
autocompletion
Rafael Barbosa
sumber
sumber
path
). Tergantung pada apa yang Anda gunakan untuk vim-rooter. Bergantung pada apa yang Anda inginkan darinya, kami dapat menggunakan plugin lain. Selain itu: Saya menggunakan youcompleteme, yang melengkapi jalur dari direktori buffer saat ini jika Anda mulai mengetik./
. Lihat reddit.com/r/vim/comments/216jdd/…Jawaban:
Seperti yang disebutkan @muru, tidak ada opsi untuk mengonfigurasi direktori untuk melengkapi path dan nama file. Itu selalu menggunakan direktori kerja dari jendela.
Saya telah menulis beberapa fungsi dan pemetaan untuk membantu ini. Di belakang layar, mereka mengubah direktori kerja lokal (menggunakan
:lcd
) sementara, kemudian mengembalikan direktori kerja sebelumnya ketika selesai.Gajah
Untuk alasan yang bahkan tidak diketahui oleh saya, saya telah memanggil Gajah plugin mikro ini .
Berikut kode (disalin dari konfigurasi Vim saya di GitHub ):
Bagaimana cara menggunakannya
Menggunakan pemetaan ini terjadi dalam 3 langkah.
1. Aktifkan pemetaan
Dalam mode Sisipkan atau mode baris perintah, aktifkan pemetaan menggunakan
<C-R><C-E>
.2. Pilih direktori
Ketikkan satu karakter untuk memilih direktori root yang ingin Anda selesaikan. Kode di atas menyediakan dua jenis root:
f
- Direktori tempat file (buffer) saat ini beradap
- Direktori dasar proyek Git milik file saat ini3. Masukkan jalur atau nama file
Anda akan diminta untuk memasukkan jalur atau nama file relatif ke direktori yang ditentukan, dengan penyelesaian tersedia. Tekan
Enter
saat selesai.Beberapa catatan
<C-X><C-F>
dilakukan; sebagai gantinya, Anda akan mengetik path atau nama file pada command-line prompt (ke mana:
perintah pergi). Setelah menekanEnter
, path akan dimasukkan ke buffer.Enter
dan lupa bahwa Anda masih harus menekanEnter
untuk mengeluarkan perintah apa pun yang baru saja Anda ketikkan.g:elephant_map
.sumber