Vim'de, tüm satırların girintisini düzeltme komutu nedir?
Çoğu zaman kodu kopyalayıp uzak bir terminale yapıştıracağım ve her şeyi berbat edeceğim. Bunu tek bir düelloda düzeltmek istiyorum.
Vim'de, tüm satırların girintisini düzeltme komutu nedir?
Çoğu zaman kodu kopyalayıp uzak bir terminale yapıştıracağım ve her şeyi berbat edeceğim. Bunu tek bir düelloda düzeltmek istiyorum.
Yanıtlar:
=
, girinti komutu hareket alabilir. Böylece, gg
dosyanın başlangıcını almak, =
girintilemek, G
dosyanın sonuna kadar gg=G
.
''
(iki tek tırnak) bulunduğunuz yere geri götürür, böylece gg=G''
girintili sonra dönün.
Terminale yapıştırmadan önce :set paste
ve sonra :set nopaste
bitirdikten sonra deneyin . Bu, yapıştırma işlemini bozan otomatik girintiyi, satır sarmayı ve diğer özellikleri kapatır.
edit: Ayrıca, =
genellikle harici bir program kullanılarak girinti daha çok daha iyi bir sonuç elde edilebilir belirtmek gerekir . Mesela ben sürekli koşuyorum :%!perltidy
. astyle
,, cindent
vb. de kullanılabilir. Ve elbette, bunları bir tuş vuruşuyla eşleyebilir ve dosya türüne bağlı olarak farklı olanları aynı tuş vuruşuyla eşleyebilirsiniz.
equalprg
takımı =
yerine harici bir filtre kullanmak için bir ftplugin'de seçeneği ayarlayabilirsiniz .
formatpgm
düzenli ve astyle ve sonra kullanın gq
. İşte benim bazı örnekler .vimrc
: au FileType xml set fp=tidy\ -q\ -i\ -xml
veau FileType java set fp=/usr/local/bin/astyle\ --mode=java\ --indent=tab
Herhangi bir akor yazmak zorunda kalmadan bloğunuzu yeniden canlandırmak istiyorsanız, şunları yapabilirsiniz:
[[=]]
=aB
İmleci hiç hareket ettirmeyecek şekilde de kullanabilirsiniz .
[[=]]
5 akor gerekir :(
Tüm komutların efendisi
gg=G
Bu dosyanın tamamını girintili hale getirir!
Ve aşağıda Vim veya gVim'de satırları hızla girintilemek için kullanılan basit ve zarif komutlardan bazıları.
Geçerli satırın altındaki tüm satırları girintilemek için
=G
Geçerli satırı girintilemek için
==
n
Geçerli satırın altındaki satırlara girinti eklemek için
n==
Örneğin, geçerli satırın 4 satırının altına girinti eklemek için
4==
Bir kod bloğunu girintilemek için kaşlı ayraçlardan birine gidin ve komutunu kullanın
=%
HTML ve XML dosyalarını girintilemek için düzenli uygulama / yardımcı programı kullanabilirsiniz ve bu dosyaları girintilemede oldukça iyi çalışır.
Bir XML dosyasını önizleme
:!tidy -mi -xml %
Bir HTML dosyasını önizleme
:!tidy -mi -html %
escape tuşuna basın ve ardından aşağıdaki kombinasyonları hızlıca yazın:
gg=G
1G=G
. Bu, dosyadaki tüm satırları girintilemelidir. 1G
ilk satırı alır =
, otomatik girintiyi başlatır G
ve son olarak da dosyadaki son satırı alır.
1gg=G
Vim'de kullanın :insert
. Bu, tüm biçimlendirmenizi koruyacak ve otomatik girinti yapmayacaktır. Daha fazla bilgi için help :insert
.
vim-autoformat kaynak dosyalarınızı dilinize özgü harici programları kullanarak biçimlendirir, örn. Ruby dosyaları için "rbeautify" mücevher, JavaScript için js-beautify "npm paketi.
Karmaşık C ++ dosyaları için vim, vim'in =
filtre komutunu kullanırken biçimlendirmeyi her zaman doğru almaz . Bu tür durumlar için, astyle gibi harici bir C ++ formatlayıcı kullanmak (veya düzeltmek ) daha iyidir, örneğin:
:%!astyle
Vim'in '=' işlevi, varsayılan olarak dahili biçimlendiricisini kullanır (bu her zaman doğru olmaz), ancak bu soruda tartışıldığı gibi uygun şekilde ayarlayarak, astyle gibi harici bir biçimlendirici kullanması da ayarlanabilir .
XML dosyaları için bu komutu kullanıyorum
:1,$!xmllint --format --recover - 2>/dev/null
Xmllint'in kurulu olması gerekir (libxml2-utils paketi)
(Kaynak: http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html )
Bunu sizin için yapmak üzere bir eşleme oluşturabilirsiniz.
Bu, tüm dosyayı otomatik olarak girintili hale getirecek ve imlecinizi bulunduğunuz konumda tutacaktır:
nmap <leader>ai mzgg=G`z
Vi Editor için şunu kullanın: insert. Bu, tüm biçimlendirmenizi koruyacak ve otomatik girinti eklemeyecektir.Bir kez, gerçek biçimlendirilmiş dosyayı görüntülemek için escape tuşuna basın, aksi takdirde bazı çöp karakterler görürsünüz. gibi ^ ben örneğin:
public static void main(String[] args) {
^I
^I System.out.println("Some Garbage printed upon using :insert");
}
Sadece vim'de görsel moda gidin ve sadece = tuşuna bastıktan sonra yukarıdan aşağıya doğru satırlardan birini seçin, Seçilen tüm satır girintili olacaktır.
ggvG=
yapabilirsin gg=G
. Hareketi görünür kılmanın anlamı neydi? Bu, hareket eden tüm eylemler için geçerlidir.