Jawaban:
Anda dapat menekan {count}Ctrl-G
:
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given.
Menekan 1diikuti oleh Ctrl+ Gmenunjukkan path lengkap file saat ini. Jika {count}
lebih tinggi dari 1, nama buffer juga akan ditampilkan.
(Hanya menekan Ctrl+ Gmenunjukkan jalur relatif ke direktori kerja Vim saat ini, seperti yang ditunjukkan oleh Jasper dalam komentar.)
Anda dapat menggunakan perintah berikut di dalam Anda .vimrc
untuk menambahkan path lengkap ke baris status, sehingga selalu terlihat:
set statusline+=%F
C-g
default untuk 0C-g
, dan 2C-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:
:echo @% |" directory/name of file
:echo expand('%:t') |" name of file ('tail')
:echo expand('%:p') |" full path
:echo expand('%:p:h') |" directory containing file ('head')
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:
:put =expand('%:p')
:put =expand('#:p')
Sumber: Dapatkan nama file saat ini di vim wikia
Terkait:
=expand...
ekspresi itu setelah Ctrl-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
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.
Saya menggunakan:
:f[ile]
Itu :f
atau :file
.
Saya terkejut tidak ada yang menyebutkan ini dalam jawaban, apakah saya melewatkan sesuatu?
Untuk menampilkan path lengkap untuk semua file, termasuk symlink yang diselesaikan, gunakan yang berikut ini.
:echo resolve(expand('%:p'))
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:
:!realpath %
atau:
:'<,'>!realpath %
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:
:w ! sudo tee %
untuk menyimpan file (sedikit offtopic di sana, tetapi ini adalah contoh yang baik dari apa lagi yang bisa dilakukan dengan %
register).
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
set laststatus=2
set statusline+=%F
Jika Anda ingin menjalankannya sekali saja. Kemudian ketika melihat jenis dokumen
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
Saya menggunakan maskapai vim untuk itu dan beberapa fitur bagus:
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 dan titlestring
. Saat ini saya menggunakan pengaturan berikut:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
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
Ctrl+G
lebih seperti 'path relatif terhadap vim's cwd'?