Hangi dosyanın vim'de açıldığını nasıl bulabilirim?


61

Bu önemsiz gelebilir, ancak birden fazla kez, hangi dosyayı vimaçtığımı unuttuğumu (örneğin farklı günlük dosyalarına bakarken vb.) Ve nasıl bulacağımı bildiğim tek yolu kapatmak olduğunu dosya ve en son komut için komut geçmişine bakın.

Programda veya açtığınız dosyadan çıkmadan şu anda hangi dosyayı açtığınızı söylemek için vim içinde bir komut var mı :<which_file_cmd>?


5
Çok fazla sorun vimaramadıysanız, kullanın :args.
41754

Yanıtlar:


76

Uprego'nun cevabına ek olarak , geçerli tamponun adını, içindeki toplam satır sayısını ve içindeki geçerli konumunuzu almak için Ctrl+ G(normal modda) tuşuna basabilirsiniz .

Güncelleme

Gereğince rxdazn yorumuna , sen basabilirsiniz 1önce Ctrl+ Gtam dosya yolunu almak için. Tuşuna basarsanız 2, tam dosya yolunu ve açık olan arabellek numarasını alırsınız (birden fazla dosyayı açtığınızda kullanışlıdır vim).


Birçok vim lesskomutunda olduğu gibi , bu aynı zamanda dosyaları düzenleme yerine dosyaları görüntülerken kullandığım komut için de geçerlidir .
Jmathew

18
ayrıca, Ctrl + G tuşlarına basmadan önce 1'e basmak, dosyanın tam yolunu gösterir
rxdazn

23

İçerideyken vimher zaman :lskomutu kullanıyorum.

Örnek

:ls
  1 %a   "blah.txt"                         line 1

blah.txtDosyanın adı nerede .



7

Ne zaman vimile çağrılmaz birçok args, :argsyararlıdır.


4
Bununla ilgili diğer sorun, vim başlatıldıktan sonra dosyanın açılması durumunda listelenmeyecek olmasıdır.
Patrick

4

Varsayılan bir vim konfigürasyon dosyasına sahipseniz, statuslineher zaman dosya detaylarının mevcut olması için bir ekleyebilirsiniz . Sürekli olarak farklı sunuculara geçiş yapıyorsanız, bunun pek yardımcı olmayacağını anlıyorum. İşte benim biraz karmaşık olan benim .vimrc'den çekildi.

" %F(Full file path)
" %m(Shows + if modified - if not modifiable)
" %r(Shows RO if readonly)
" %<(Truncate here if necessary)
" \ (Separator)
" %=(Right align)
" %l(Line number)
" %v(Column number)
" %L(Total number of lines)
" %p(How far in file we are percentage wise)
" %%(Percent sign)
set statusline=%F%m%r%<\ %=%l,%v\ [%L]\ %p%%

" Change the highlighting so it stands out
hi statusline ctermbg=white ctermfg=black

" Make sure it always shows
set laststatus=2

MacVim'de buna benzer (ancak terminallerde de çalışır). görüntü tanımını buraya girin

Her zaman olduğu gibi, :help statuslinedaha fazla seçenek ve ayrıntı almak için yapabilirsiniz . Ve durum çizgisini iyi bir şekilde açıklamak için Hard Way chim Öğrenme 17'ye bakınız.


Ben de her zaman statusline kullanıyorum. +1
Rob

1

Ayrıca :echo @%, geçerli dizine göre dosyanın adını veren de var .


1

Bu tür bilgileri edinmenin sayısız yolu var, ancak bir şey istiyorsanız sadece bir tuşa basmanız yeterlidir ve dosya adı görüntülenecektir, ardından aşağıdakileri kendinize ekleyin ~/.vimrc:

map <F4> <ESC>:file<CR>

Bu diyor ki

bind the `F4' key to the following sequence: Escape-key, :file, Carriage-Return (enter-key)

Ve filemuhtemelen belirgin olarak komut, diğer bilgilerle birlikte geçerli dosya adını döndürür.

Ayrıca durum çizgisi oluşturabilirsiniz, böylece bakmaktan başka bir şey yapmanıza bile gerek kalmaz.

Durum çizgisini korumak için her zaman aşağıdakileri içine yerleştirin ~/.vimrc:

set laststatus=2

Bu, ViM'ye her zaman bir durum satırı göstermesini söyler, diğer seçenekler ise 0asla ve 1yalnızca ViM'de iki veya daha fazla pencereniz olduğunda.


1

Genelde sadece yazarım :e ve bu da bana tam dosya yolunu ve satır ve karakter sayısını gösterir.

Uyarma : dosyayı esas olarak diskten yeniden açar, bu nedenle dosya önceden kaydedildiğinde en kullanışlıdır.

:help :e diyor:

                          *:e* *:edit*
Edit the current file.  This is useful to re-edit the
current file, when it has been changed outside of Vim.
This fails when changes have been made to the current
buffer and 'autowriteall' isn't set or the file can't
be written.

1

Ben benim vimrc bu haritalama var

nnoremap <leader>pfn :echo expand('%:p')<CR>

Bu yüzden eğer ,pfnyazarsam veya "dosya adını yaz", tüm dosya yolunu yansıtır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.