Ketika saya mengedit file di Vim, apakah ada perintah untuk melihat path file saat ini? Terkadang ini sangat berguna jika ada beberapa file dengan nama yang sama dalam suatu proyek.
statusline
thameera
sumber
sumber
Ctrl+G
lebih seperti 'path relatif terhadap vim's cwd'?C-g
default untuk0C-g
, dan2C-g
menunjukkan nomor indeks buffer (mulai dari 1) juga sebagai tambahan.1C-g
!Daftar
%
berisi nama file saat ini.Perintah berikut dapat dimasukkan untuk menampilkan informasi yang ditampilkan:
Jika semua yang diinginkan adalah untuk menampilkan nama file saat ini, ketik
:f
/:ls
atau tekan Ctrl- g(untuk path lengkap tekan 1lalu Ctrl- g).Dalam mode sisipkan, ketik Ctrl- rlalu %untuk memasukkan nama file saat ini.
Perintah berikut menyisipkan baris yang terdiri dari path lengkap file saat ini dan alternatif ke buffer:
Sumber: Dapatkan nama file saat ini di vim wikia
Terkait:
sumber
=expand...
ekspresi itu setelahCtrl-R
ketika dalam mode sisipkan juga.Anda dapat menggunakan
:!ls %:p
untuk mendapatkan path lengkap ke file saat ini.Bergantung pada konteks ex,
%
akan berarti isi file atau nama file. Ketika keluar, itu mewakili jalur file relatif ke direktori saat ini. Perintah '%:p
' akan menambahkan pengubah nama file path lengkap%
.Ada beberapa pengubah nama file lain yang menarik seperti:
:~
: Dapatkan jalur file relatif ke direktori home (yang ini tidak berfungsi untuk saya karena suatu alasan):.
: Dapatkan jalur file relatif ke direktori saat ini (%
default):r
: Nama file root. Nama file tanpa ekstensi.:e
: Ekstensi file.:h
: Membagi/
dan mengembalikan setengah kiri (yaitu jika saya mengedit file di jalur/tmp/test.txt
dan jalankan%:p:h
akan kembali/tmp
:t
: Membagi/
dan mengembalikan setengah kanan (yaitu jika saya mengedit file di jalur/tmp/test.txt
dan jalankan%:p:t
akan kembalitext.txt
sumber
Orang dapat melihat direktori kerja saat ini dengan
:pwd
. Tentu saja, ini hanya direktori, dan bukan nama file. Untuk mendapatkan direktori dan nama file yang berfungsi, kita dapat menggunakan register khusus%
, yang berisi informasi tentang file saat ini.Jika Anda menggunakan
:echo @%
, Anda akan mendapatkan direktori dan nama file dari file saat ini.Jika Anda menggunakan
:echo expand('%:p')
, Anda akan mendapatkan path lengkap dan nama file dari file saat ini. Ini sangat mirip dengan jawaban CharlesL .Saya ingat yang ini, karena, jika Anda menggunakan bantuan vim
:h expand
, maka itu menyebutkan itu%
dan%:p
kerabat mereka.sumber
Saya menggunakan:
Itu
:f
atau:file
.Saya terkejut tidak ada yang menyebutkan ini dalam jawaban, apakah saya melewatkan sesuatu?
sumber
Untuk menampilkan path lengkap untuk semua file, termasuk symlink yang diselesaikan, gunakan yang berikut ini.
sumber
Ada aleady jawaban yang lebih baik, tetapi jika (karena alasan tertentu) Anda ingin menggunakan shell untuk mendapatkan path lengkap file (ini lebih berguna jika Anda akan melakukan beberapa operasi lain pada file dengan shell), pada sistem seperti Unix Anda dapat menjalankan:
atau:
untuk memasukkan jalur ke dalam dokumen pada pilihan saat ini.
Daftar
%
selalu berisi nama file. Contoh dunia nyata mungkin jika Anda mengedit file konfigurasi, tetapi tidak memiliki izin menulis (dan tidak ingin menjalankan Vim sebagai root), Anda dapat mengedit file, lalu jalankan:untuk menyimpan file (sedikit offtopic di sana, tetapi ini adalah contoh yang baik dari apa lagi yang bisa dilakukan dengan
%
register).sumber
realpath
bukan POSIX, jadi mungkin lebih mudah untuk dilakukan:!echo "$PWD/%"
Anda perlu mengatur garis status agar dapat dilihat dan juga mengaturnya ke jalur. Saya melakukannya secara permanen dengan menambahkan dua baris di bawah ini ke ~ / .vimrc saya
Jika Anda ingin menjalankannya sekali saja. Kemudian ketika melihat jenis dokumen
sumber
Saya menggunakan maskapai vim untuk itu dan beberapa fitur bagus:
sumber
Anda dapat menunjukkan path lengkap file yang sedang diedit di bilah judul, yang merupakan cara mudah untuk menunjukkan path file menurut saya.
Untuk melakukan itu, Anda perlu mengatur
title
opsi dantitlestring
. Saat ini saya menggunakan pengaturan berikut:Ini akan menampilkan nama host dari Vim, kemudian path lengkap file dan diikuti oleh waktu modifikasi terakhir dari file tersebut. Lihat gambar di bawah untuk demo
sumber