Bir vimşeyi yaparak birden fazla dosyayı açabileceğimi biliyorum vim 2011-12*.log, ancak dosyalar arasında geçiş yapabilir ve dosyaları birer birer nasıl kapatabilirim? Ayrıca, düzenlediğim mevcut dosyanın dosya adını nasıl söyleyebilirim?
Bir vimşeyi yaparak birden fazla dosyayı açabileceğimi biliyorum vim 2011-12*.log, ancak dosyalar arasında geçiş yapabilir ve dosyaları birer birer nasıl kapatabilirim? Ayrıca, düzenlediğim mevcut dosyanın dosya adını nasıl söyleyebilirim?
Yanıtlar:
Her şeyden önce, kısa bir öğretici de dahil olmak üzere kendi kendine yardım konularının bir listesi için vim'e girebilir :(iki nokta üst üste) ve sonra yardım alabilirsiniz . Konular listesinde imlecinizi ilgi konusu konunun üzerine getirin ve ardından tuşuna basın , o konu açılacaktır.help:helpctrl]
Başlamak için iyi bir yer
|usr_07.txt| Editing more than one file
Tamam, cevabınıza.
Bir dosya listesiyle vim başlattıktan sonra, kısa bir süre girerek :nextveya bir sonraki dosyaya geçebilirsiniz :n.
:wnextgeçerli değişiklikleri yazmak için kısa ve sonra bir sonraki dosyaya gidin.
Orada benzer bir seviyededir :previous, :wpreviousve :Next. (Not :piçin kısaltmadır :print. Kestirme için :previousolan :prevya da :N.)
Nerede olduğunuzu görmek için dosya listesine girin :argsve düzenlenmekte olan dosya []parantez içinde görünecektir .
Örnek:
vim foo.txt bar.txt
:args
sonuç:
[foo.txt] bar.txt
vim açıkken başka bir dosyayı açabilir :tabe filenameve yazdığınız diğer dosyaya geçebilir :tabnveya :tabpbuna göre sonraki ve önceki için kullanabilirsiniz.
GT ve gt klavye kısayolları düzenleme modunda değilken sekmeleri değiştirmek için de kullanılabilir (yani, ekleme, değiştirme vb modlarında değil). Bazı sistemlerde Ctrl+ Alt+ Page Upve Ctrl+ Alt+ Page Downsekme değiştirmeye de izin verir, ancak bu her zaman işe yaramaz (örneğin, OS X terminalinde 'kutudan çıkar' çalışmaz).
Ve vim uygulamasının üstünde dosya adını görebilirsiniz.
vim -p file1 file2
:argadd filenameve sonra :nextona. Aynı şekilde, :argdel filenamedüzenlemedeki dosyalardan birini kaldırmak için de kullanabilirsiniz .
Tamponlar arasında geçiş yapmak için kullanılan komutlar:
:bf # Go to first file.
:bl # Go to last file
:bn # Go to next file.
:bp # Go to previous file.
:bw # Close file.
:help buffer daha fazla bilgi bulmak için
Dosya adı kullanımını bilmek için Ctrl+ G, :fileveya:f
:bwdosyayı kapat haha. :bwYalnızca ne yaptığınızı biliyorsanız, kullanmanız gerektiğini söylediği yerdeki yardımı okumayı unutmayın . Çok da önemli değil, ancak dosya hakkındaki tüm işaretleri ve bilgileri silmek istemediğiniz sürece, daha iyi bir kullanım :bdya da :qnormal bir insan gibi
:bwMerak ediyorsanız hakkında daha fazla bilgi : vi.stackexchange.com/questions/2212/…
Verilen cevapların dışında bir diğer seçenek ise pencereyi şu şekilde bölmektir:
:sp
:vsp
:vspdikey bölme içindir. Ardından Ctrl+W <ARROW_KEYS>bölmelerde hareket etmek için kullanın .
:vsyerine:vsp
Ctrl+W, vdikey ayırma ve Ctrl+W, syatay ayırma için bile .
CTRL+Wve son zamanlarda web sayfalarında çok fazla VI düzenleme yapıyorum. Her seferinde komutu bile düşünmeden yazıyorum ve ... whammmm ... browser sekmesi GONE! Unutmaya devam ediyorum. Gerçekten yeni bir kısayol öğrenmem gerekiyor.
Benzer bir soruyu superuser'da da sordum.
"Farklı bash pencereleri ve VI ile açılan dosyalar arasında kopyalayıp yapıştırma nasıl yapılır?"
Sorumun cevabı yapamazsınız, ancak VIM'in :splitkomutunu kullanarak tek bir bash penceresinde iki dosyayı açabilirsiniz :
$ vim file1, VIM içinde :split file2komutu kullanarak ikinci bir dosya açın .$ vim -o file1 file2bash kullanın .:qçıkar ve :q!zorla çıkar.Benim bash siyah ve beyaz, bu nedenle her ekranın dosya adı, burada belirtilen dosya adıyla tersine çevrilmiş bir 'seçili' çizgi şeklinde gösteriliyor.
Woot!
Birden fazla dosyayı düzenlemenin en uygun yöntemini sekmeler kullanmaktır. Aşağıdaki gibi komut satırı üzerinden birden fazla dosyayı ayrı sekmelerde açabilirsiniz:
vim -p file1.txt file2.txt
Veya zaten açık bir vim varsa, aşağıdaki gibi yeni bir sekmede yeni bir dosyayı açabilirsiniz:
:tabe file2.txt
Sekmeleri açtıktan sonra gt, bir sonraki sekmeyi gTgörüntülemek ve önceki sekmeyi görüntülemek için kullanın.
Ayrıca birinci sekmeye 1gt, ikinci sekmeyle 2gtvb. Atlayabilirsiniz.
Kullanarak sekmeleri kapatabilirsiniz. :tabc
Sonunda Geçerli sekmeyi taşıyabilirsiniz nile inci konuma :ntabmnereye nherhangi bir sayı veya daha büyük eşittir 0.
argadd a/b c/d e/f
argadd ...tüm dosyaları argümanlara ve ayrıca :ls/ :buffersve düzenlemenize izin verecek şekilde ekleyecektir .
:h arglsit& :h argedit& Bkz.:h argsd
Ayrıca, yalnızca bazı argümanlarla belirli eylemleri gerçekleştirebilir ve argümanlarınızı :argdo ...baştan sona yeniden başlatabilirsiniz :argsd*.
Bunu yapmanın çok yolu var. İlki, belki daha az kullanışlı olanı, vimdüzenlemek istediğiniz dosyaları çağırmaktır - oluşturun:
vim first_file second_file ...
İki dosyayı iki arabellekte çağırır. Bir dosyadan diğerine geçmek için lütfen :nve tuşlarını kullanın :N. Düzenlemekte olduğunuz dosyaları listelemek için :args, işi yapacak. :help bufferbu konuda size daha fazla yardımcı olacaktır.
Bu sorunuzu cevaplamalıdır. Ama işte daha fazla bilgi:
Konsol ekranınızı vim kullanarak bölerek dosyalarınızı daha rahat bir şekilde düzenlemenin bir yolu vardır . Bunu yapmak için, vim kullanırken :split( :sp) veya :vsplit( :vs) ile iki çerçeve açın . Ardından bu karelerde + > + kombinasyonunu kullanarak gezinin . Ayrıca, aynı + + ok veya anahtar ( , , ya da bir sonraki çerçeveye karşılık gelen). Bu yapıldığında, istediğiniz dosyayı düzenleyin . bu konuda size daha fazla yardımcı olacaktır.CtrlWCtrlWCtrlWHJKL:e file_name:help opening-window
Şimdi, dosyalar arasındaki farkları görmek istiyorsanız, -dargümanı kullanın veya karşılık gelen dosyalarla vimdiff programını arayın (aynıdır). :help diffbu konuda size daha fazla yardımcı olacaktır.
vim -d first_file second_file ...
Bazı sorunlarınız varsa lütfen bana bildirin.
Birden fazla dosyayı düzenlemek için hem yatay hem de dikey olarak bölünmüş pencereler kullanmayı seviyorum.
Bu pencereleri daha kolay yönetmek için tmux kullanıyorum
https://tmux.github.io/ "Terminal çoklayıcı nedir? Bir terminaldeki birkaç program arasında kolayca geçiş yapmanıza, onları ayırmaya (arka planda çalışmaya devam ederler) ve farklı bir terminale tekrar takmanıza olanak tanır. çok daha fazla. Kılavuza bakın. "
Örnek: Dosyalara bakmak veya sağda testler yapmak, solda test ve kaynak dosyaları düzenlemek: 
:e #(filename) açılan iki dosya arasında geçiş yapmak için
:p önceki dosya için
:n sonraki dosya için