Vim'de açık dosyanın dizininde yeni bir dosya oluştur?


93

Kendimi, açık dosyanın bulunduğu dizinde yeni bir dosya oluşturmak istediğim konumda buluyorum. Vim'deki açık dosyanın dizininde nasıl yeni bir dosya oluşturabilirim? Ayrıca, bunları kendi başıma öğrenebileceğim bir yer var mı? Googling yardımcı olmadı.


Linux'taki metin editörü vim'den mi bahsediyorsunuz?
ianaz

Yanıtlar:


173

Vim içinde, :edit filenameveya gibi komutlarla, var olan dosyaların düzenlendiği gibi yeni dosyalar oluşturulur :split filename. Bunları diske kalıcı hale getirmek için (isteğe bağlı olarak içeriği yazmanız ve) aracılığıyla kalıcı hale getirmeniz gerekir :write.

Bir komut istemi gibi, Vim de geçerli dizin kavramına sahiptir ( :pwdlisteler). Tüm dosya yolları ona göredir. Mevcut dosyanızın yolunu çoğaltmanıza gerek yok, onlar için bazı güzel kısayollar var: %mevcut dosyaya atıfta bulunur :h, dizini için bir değiştiricidir, dosya adı hariç (cp. :help filename-modifiers) Yani,

:e %:h/filename
:w

filenameo anda açık olan dosyayla aynı dizinde yeni bir dosya oluşturacak ve onu yazacaktır.

Alternatif olarak, bazı kişiler Vim'in her zaman mevcut dosyanın dizinine geçmesini sever. Bu, yerleştirilerek yapılandırılabilir

:set autochdir

senin içine ~/.vimrcdosyası (hangi Vim başlangıçta okunur). Sonra, yukarıda basitçe

:e filename
:w

Son olarak, Vim'in harika bir yerleşik özelliği var :help. Gezinmeyi ve aramayı öğrenin!


2
autochdirmaalesef çok kötü ve buna güvenemeyeceğimi fark ettim. Bunun yerine vimrc'ime bir autocmd koydum:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
dash-tom-bang

1
Dawg cevabınızı da oylamak istiyor ancak Dawg gerekli temsilciye sahip değil. İyi yazılmış açıklama için teşekkürler!
Dawg

14

"nerdtree" eklentisini denemelisiniz. Nerdtree penceresinde, m tuşunu yazdınız ve dosya işlem seçenekleri size gösterilecek


11

Yeni bir dosya oluşturmak ve onu mevcut dosyanızın yanındaki pencerede göstermek istiyorsanız, şunu deneyebilirsiniz:

:vsp newfile

vspAçılımı vertical splitve bir başka (ayrıca sadece çalışır Yeni dosyanızı yazılı olduğu geçerli dosyayı gösteren yarısında ekranı böler spyatay bölünmüş olan).

@ MartinLyne'ın yukarıdaki yorumuna göre, bu, dosyayı açtığınız dosyanın dizininde oluşturacaktır vim. Bunu ayarlamak için, mevcut çalışma dizinini aşağıdaki şekilde değiştirebilirsiniz:

:cd %:p:h

Bu komut, mevcut çalışma dizinini aktif dosyanın dizinine değiştirir, yani vspkomutun (veya yukarıdaki komutlardan herhangi birinin) çalıştırılması dosyayı o dizinde oluşturacaktır.


2

Var olmayan bir yerde vim'i açtığınızda $ vim /etc/<some_folder/<next_folder>/file.cfg

daha sonra vim'in içindeyken yeni bir dizin oluşturmak için, sadece normal modda çalıştırın ve ardından :! mkdir -p /etc/<some_folder/<next_folder>belgenizi her zamanki gibi kaydedin :w :x ZZ(ne istersen)

bu kadar


1

Bu Gvim için! Geçerli dizini görmek için bunu girin.

:cd

sonra onu değiştir

:cd desktop/somefolder

sonra kaydedin veya orada yeni dosya oluşturun

:enew asd.cpp

şimdi tekrar dosyayı gör

:cd

0

Partiye oldukça geç kaldım, ancak başka bir seçenek de NERDtree'yi :Eveya :Explore(veya bölme alternatifleri :Vexplore/ :Sexplore== :Vex/ :Sex) ile açmaktır .

NerdTree'de ile yeni bir dosya oluşturabilir %ve adı yazabilirsiniz. Dosyayı otomatik olarak açacak ve siz :w/ kaydettikten sonra oluşturacaktı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.