Vim'de birkaç dosyayı örneğin çalıştırarak açıyorum
vim a/*.php
23 dosya açılır.
Daha sonra düzenlememi yaparım ve aşağıdakileri iki kez çalıştırırım
:q
bu da tüm tamponlarımı kapatıyor.
Vim'de yalnızca bir arabelleği nasıl kapatabilirsiniz?
Vim'de birkaç dosyayı örneğin çalıştırarak açıyorum
vim a/*.php
23 dosya açılır.
Daha sonra düzenlememi yaparım ve aşağıdakileri iki kez çalıştırırım
:q
bu da tüm tamponlarımı kapatıyor.
Vim'de yalnızca bir arabelleği nasıl kapatabilirsiniz?
Yanıtlar:
Dikkatli bir kelime: "bw içindeki w yazma için değil, wipeout için!"
Kılavuzlardan daha fazlası:
: bd
Tamponu boşaltın [N] (varsayılan: geçerli tampon) ve tampon listesinden silin. Arabellek değiştirilirse, [!] Belirtilmediği sürece bu başarısız olur, bu durumda değişiklikler kaybolur. Dosya etkilenmez.
Ne yaptığınızı biliyorsanız, şunları da kullanabilirsiniz: bw
: bw
|: Bdelete | gibi, ancak arabelleği gerçekten silin.
:bw"ne yaptığınızı biliyorsunuz" yazıyor , ki ben bilmiyorum, bu yüzden sanırım kullanacağım :bd.
:bd) sekmeyi de kapatır. Muhtemelen istediğiniz :bd n .. [m]veya :n,mbdbelirli sayıların veya sayıların kapanması için, arabelleklere bakmadan yapabileceğiniz
wwriteVim kılavuzuna göre komutun kısaltılmış halidir, ayrıca herhangi bir "silme" den bahsedilmez. Komutun ( help write) açıklaması "Tüm arabelleği geçerli dosyaya yaz" ile başlar.
wde bwonun hakkında konuşmuyor ortadan kaldırma komut vasıtası wkomutu. Bu uyarıyı oraya koydu, böylece insanlar bwkomutun tampon yazma anlamına gelmediğini düşünmedi (bu, tampon silme anlamına gelmez.)
Bu, önceki cevaplar tarafından açıkça belirtilmemişse:
: bd geçerli arabelleği kapatır. Eğer arabellek listesini almak istemiyorsanız.
:bdyalnızca tamponu kapatır (bunun anlamı ne olursa olsun) :bwtüm değişkenleri de temizler ve GERÇEKTEN lsarabellekten kaldırır .
Arabellek kimliğinizi kullanarak kontrol edin:
orada gibi tamponların listesini göreceksiniz
1 a.php
2 b.php
3 c.php
tampondan b.php kaldırmak istiyorsanız
:2bw
tüm arabellekleri kaldırmak / kapatmak istiyorsanız
:1,3bw
: Ls komutunun çıkışına göz atmak yerine, numarasını belirterek bir arabelleği silme (silme, silme ...) yerine, dosya adlarını kullanmanın genellikle daha etkili olduğunu buluyorum.
Örneğin, ben .txt birkaç dosya açtıktan sonra bazı ince nokta anılarımı yenilemek için .. kopyalayın ve bir tür şablon olarak kullanmak için metin birkaç satır yapıştırın .. vb. Ben aşağıdakini yazın:
:bd txt <Tab>
Eşleşen dizenin dosya adının başında olması gerekmediğini unutmayın.
Yukarıda, ekranın altındaki 'txt' ile eşleşen dosya adlarının listesi görüntülenir ve başlangıçta dokunulmamış olarak yazdığım: bd komutunu tamamlanmaya hazır tutar.
İşte bir örnek:
doc1.txt doc2.txt
:bd txt
'Txt' biti üzerinde geri alabilir ve silmek istediğim dosya adını yazabilirim, ancak bu gerçekten uygun hale geldiğinde şunu yapmak zorunda değilim: Sekme tuşuna ikinci kez basarsam, Vim otomatik olarak komutumu tamamlar ilk maçta:
:bd doc1.txt
Bu tampondan kurtulmak istiyorsam Enter tuşuna basmam gerekiyor.
Ve silmek istediğim arabellek ikinci (üçüncü .. vb.) Eşleşme olursa, sadece eşleşmeler listesinde my: bd komut döngüsünü yapmak için Tab tuşuna basmaya devam etmem gerekir.
Doğal olarak, bu yöntem ayrıca aşağıdaki gibi komutlar aracılığıyla belirli bir tampona geçmek için de kullanılabilir: b ..: sb .. vb.
Bu yaklaşım özellikle 'gizli' Vim seçeneği ayarlandığında kullanışlıdır, çünkü arabellek listesi hızla büyüyebilir, birkaç ekranı kaplayabilir ve aradığım belirli arabelleği bulmayı zorlaştırabilir.
Bu özellikten en iyi şekilde yararlanmak için, muhtemelen aşağıdaki Vim yardım dosyasını okumak ve Tab komut satırı tamamlama davranışını buna göre ayarlamak, böylece iş akışınıza en iyi şekilde uymak en iyisidir:
:help wildmode
Yukarıda tarif ettiğim davranış, bash tamamlanmasını taklit etmek için tutarlılık uğruna seçtiğim aşağıdaki ayardan kaynaklanıyor:
:set wildmode=list:longest,full
Arabellek numaralarını kullanmanın aksine, bu yaklaşımın değeri, genellikle: ls komutu ile numarasını aramak zorunda kalmadan, doğrudan arabelleği hedeflememe izin veren belirli bir dosya adının en azından bir kısmını hatırlıyorum.
[EDIT: Bu, Vim'i yeterince tanımadığım bir zamandan beri aptalca bir öneriydi. Lütfen arabellek yerine sekme kullanmayın; sekmeler Vim'in "pencere düzenleri" dir]
Sekmeleri kullanmaya geçebilir misiniz?
vim -p a/*.php aynı dosyaları sekmelerde açar
gtve gTsekmeleri ileri geri değiştirme
:q yalnızca geçerli sekmeyi kapatır
:qa her şeyi kapatır ve çıkar
:tabo geçerli sekme hariç her şeyi kapatır
vim-noxUbuntu paketinin Ruby desteği var.
Buffergator veya NERDTree gibi bir tampon veya ağaç gezinme eklentisi kullananlar, mevcut arabelleği yok etmeden önce bu bölmeleri değiştirmelidir - aksi takdirde bölmelerinizi wonkyville'e gönderirsiniz
Kullanırım:
"" Buffer Navigation
" Toggle left sidebar: NERDTree and BufferGator
fu! UiToggle()
let b = bufnr("%")
execute "NERDTreeToggle | BuffergatorToggle"
execute ( bufwinnr(b) . "wincmd w" )
execute ":set number!"
endf
map <silent> <Leader>w <esc>:call UiToggle()<cr>
NERDTreeToggleBu listedeki " " yazmakla yazmak aynıdır :NERDTreeToggle. Bu işlevi kendi yapılandırmanızla entegre olacak şekilde değiştirebilirsiniz.
Pencere düzeninizi (bölmelere dayalı geçerli düzen) yok etmeden bir arabelleği kapatmak istiyorsanız, bbye gibi bir Eklenti kullanabilirsiniz . Buna dayanarak,
:Bdelete (instead of :bdelete)
:Bwipeout (instead of :bwipeout)
Veya yalnızca .vimrcdaha kolay erişim için bir eşleme oluşturun.
:nnoremap <Leader>q :Bdelete<CR>
Gönderen eklentilerin sayfalarına :
- Tamponu kapatın ve çıkarın.
- O pencerede başka bir dosya göster.
- Açık başka bir dosyanız yoksa boş bir dosya gösterin.
- Bu pencerede başka bir dosyayı düzenlemeye karar verirseniz işe yaramaz [dosya yok] arabellekleri bırakmayın.
- Bir dosya birden çok pencerede açık olsa bile çalışır.
- Çeşitli arabellek kaşıkları ve sekme çubukları ile sorunsuz çalışın.
Gönderen eklentilerin sayfalarına :
Vim'de bir arabelleği kapatmak için iki komut vardır:
:bdeleteve:bwipeout. Birincisi dosyayı arabellek listesinden kaldırır, seçeneklerini, değişkenlerini ve eşlemelerini temizler. Ancak, atlama listesinde kalır, bu yüzdenCtrl-osizi geri alır ve dosyayı yeniden açar. İstediğiniz bu değilse,:bwipeoutya da kullandığınız:Bwipeoutyerde Bbye eşdeğerini kullanın:bdelete.
vim -o a/*.php(veya-Odikey pencereleri kullanarak) ayrı Vim pencerelerinde açabileceğinizi ve arabellek navigasyonundan kaçabileceğinizi unutmayın - bu sadece birkaç dosya için harika bir yöntemdir, ancak 23 dosyada sadece birkaç satır / sütun olacaktır her biri.