Ex modundaki Vim şu durumlarda faydalıdır:
- Etkileşimli (çoklu) dosyaları etkileşimli olarak (betiğin bir parçası olarak) düzenlemeniz gerekir.
- Bağlantınız çok yavaş veya işlemlerinizden sonra ekran güncellenmiyor.
- Eşlemeler ve kısaltmalar devre dışı bırakıldı.
- Gibi ortak anahtarlar Escapeveya Controldüzgün çalışmıyor.
Temel violarak görsel mod exbu yüzden Vim Ex Mode sadece benziyor ex(hala aynı kodu çalıştırıyorlar), bu yüzden exvi ve tersi içinden komut moduna geçmek mümkün . Aslında iki mod vardır: Ex mod ( vim -e) ve vi uyumlu Ex moddan ( vim -E) daha gelişmiş komutlar sağlayan gelişmiş Ex mod . Bakınız: Ex modu ile gelişmiş Ex modu arasındaki fark nedir?
Ör editörler bir ailenin köküdür: edit, exve vi. Ex, bir süper kümedir edve en kayda değer uzantısı bir ekran düzenleme tesisidir. ex (1)
Düzenleme en yaygın kullanımı ve benzeri olarak bir şekilde kullanan insanlar olmayan etkileşimli dosyaları olduğu sedve awkbununla birlikte daha akışı yönlendirilmiş ediyoruz, - onlar sadece başından sonuna kadar ileri dosyayı okumak (bunlar birden fazla satır ile çalışmak üzere tasarlanmış değiliz ) vimarabellek odaklı iken - dosyada istediğiniz gibi güçlü kılan ileri ve geri hareket edebilirsiniz.
Temelde:
sedBir S düzenleyici ED itor , bir dosya editörü değil.
Bununla birlikte, insanlar dosyaları düzenlemeye çalıştığı için kötüye kullanıyor gibi görünüyor ve gerçek şu ki dosyaları düzenlemiyor. İkincisi, yerinde ( -i) gibi seçenekleri standart olmayan FreeBSD uzantılarıdır ve diğer işletim sistemlerinde bulunmayabilir. Bu nedenle, taşınabilir kodlardan, G / Ç ek yükü ve kötü yan etkilerden (sembolik simgeleri yok etmek gibi) kaçınmak istiyorsanız ex, standart UNIX komut tabanlı editörü (birlikte ed) BashFAQ olan kullanmanız gerekir .
Ex modunda faydalı bulduğum diğer şeyler python, arka arkaya birçok komutu çalıştırabileceğiniz, düzenli ifadeleri çalıştıran / hata ayıklayan, vim konfigürasyonunu kontrol eden, harici komutları çalıştıran veya kayıtları çalıştıran vb. .
Örneğin:
let @d = '<td></td>'
let @r = '<tr>' . repeat(@d, 5) . '</tr>'
echo @r
let @t = '<table>' . repeat(@r, 5) . '</table>'
reg
Ex modunda normal moddan daha kolaydır (yalnızca son komutunuzu görebilirsiniz).
Pratik kullanımlar
Aşağıdaki takma adları benim var .bash_aliases:
alias trim="ex +'bufdo!%s/\s\+$//e' -scxa"
alias retab="ex +'set ts=2' +'bufdo retab' -scxa"
Not: Kullanarak bufdodeğil exPOSIX uyumlu yöntem (uyarınca kılavuzun ), bu yüzden o zaman bunu kullanarak düşünebilirsiniz findyerine. !(Aksi oluşturulur uyarı) kaydetmeden tamponlar geçiş zorlamak için kullanılır.
İlki, tüm kaynak dosyalarımdaki boşlukları kırpmak için kullanıyorum, örneğin:
trim **/*.php
İkincisi, tüm sekmeleri boşluklara (tekrarlı olarak) dönüştürür , örneğin:
retab **/*.php
Benim için kullanmak retabyeterli, ancak burada açıklanan bazı olumsuzluklar var . -VAyrıntılı verbilite çıktısı için ekstra ekleyin .
Yukarıdaki örneklerin zsh / bash4 globbing ( **) yöntemini kullandığına dikkat edin , bu nedenle kabuğunuzun desteklediğinden ve etkin olduğundan emin olun.
Daha pratik örnekler için (html dosyalarını ayrıştırma gibi) kontrol edin:
Ayrıca Ex-mode hakkında daha fazla bilgi için:
Qveq:oldukça farklı. SadeceQsağdan mı bahsediyorsun ?