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
:help
ctrl]
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 :next
veya bir sonraki dosyaya geçebilirsiniz :n
.
:wnext
geçerli değişiklikleri yazmak için kısa ve sonra bir sonraki dosyaya gidin.
Orada benzer bir seviyededir :previous
, :wprevious
ve :Next
. (Not :p
için kısaltmadır :print
. Kestirme için :previous
olan :prev
ya da :N
.)
Nerede olduğunuzu görmek için dosya listesine girin :args
ve 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 filename
ve yazdığınız diğer dosyaya geçebilir :tabn
veya :tabp
buna 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 filename
ve sonra :next
ona. Aynı şekilde, :argdel filename
dü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, :file
veya:f
:bw
dosyayı kapat haha. :bw
Yalnı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 :bd
ya da :q
normal bir insan gibi
:bw
Merak 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
:vsp
dikey bölme içindir. Ardından Ctrl+W <ARROW_KEYS>
bölmelerde hareket etmek için kullanın .
:vs
yerine:vsp
Ctrl+W, v
dikey ayırma ve Ctrl+W, s
yatay ayırma için bile .
CTRL+W
ve 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 :split
komutunu kullanarak tek bir bash penceresinde iki dosyayı açabilirsiniz :
$ vim file1
, VIM içinde :split file2
komutu kullanarak ikinci bir dosya açın .$ vim -o file1 file2
bash 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 gT
görüntülemek ve önceki sekmeyi görüntülemek için kullanın.
Ayrıca birinci sekmeye 1gt
, ikinci sekmeyle 2gt
vb. Atlayabilirsiniz.
Kullanarak sekmeleri kapatabilirsiniz. :tabc
Sonunda Geçerli sekmeyi taşıyabilirsiniz n
ile inci konuma :ntabm
nereye n
herhangi 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
/ :buffers
ve 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ı, vim
dü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 :n
ve tuşlarını kullanın :N
. Düzenlemekte olduğunuz dosyaları listelemek için :args
, işi yapacak. :help buffer
bu 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, -d
argümanı kullanın veya karşılık gelen dosyalarla vimdiff programını arayın (aynıdır). :help diff
bu 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