Vim'de kod katlamayı nasıl etkinleştirebilir ve yapabilirim ?
Herhangi bir şeyi değiştirmek zorunda ~/.vimrc
mıyım?
Ben yazarken z+ ave z+ cve z+ ove hiçbir şey olmaz.
Katlama hakkında bir makale: Vim'de kod katlama .
Vim'de kod katlamayı nasıl etkinleştirebilir ve yapabilirim ?
Herhangi bir şeyi değiştirmek zorunda ~/.vimrc
mıyım?
Ben yazarken z+ ave z+ cve z+ ove hiçbir şey olmaz.
Katlama hakkında bir makale: Vim'de kod katlama .
Yanıtlar:
Hayır sen Gözlerinde farklı bağlantılı sayfadan komutu koymak gerekmez ~/.vimrc
, sadece vermeden sonra bunları yazabilirsiniz :
içinde vim
komut istemi alır.
Ancak satırları koyarsanız:
set foldmethod=indent
set foldnestmax=10
set nofoldenable
set foldlevel=2
Verdiğiniz bağlantıda belirtildiği gibi, içinde, ~/.vimrc
dosyada her zaman katlama kullanmak istediğinizde bunları yazmak zorunda değilsiniz. set nofoldenable
Açılış, dosyaları "normal" olduğunda, yani katlanmış değil emin kılar.
:
. Yazdığınız set
komutlar istemi sonra zaman yazmaya olsun :
. zc
Özgürce imleci hareket ettirebilirsiniz zaman kullanabileceğiniz gibi sen, yazın zt
imleç mevcut ekranın üstüne üzerindedir metni alır.
Vim'in varsayılan katlama yöntemi, manual
katlamaların elle oluşturulduğu anlamına gelir; aksi takdirde, orada kapalı veya kullanılarak açılacak kat olduğu za, zoya da zcsen tarif edildiği gibi. Ama, bir kat oluşturabilir zf{motion}
içinde normal modda veya zfiçinde Görsel modu; örn. zfj, geçerli hat için bir sonraki ve bir sonraki modu Normal modda oluşturur.
indent
@Anthon tarafından kabul edilen cevap, katlama yönteminin nasıl ayarlanacağını açıklar indent
; yani katlama, girintilerin seviyesi ile tanımlanır.
syntax
Daha uygun bir şekilde, geçerli tamponun dil sözdizimini temel alarak kıvrımlar otomatik olarak oluşturulabilir. Eğer bir programlama dili kullanıyorsanız, diyelim L ve tanımını katlama gelmiş L (örneğin bir Vim eklentisi içinde katlama bilgi hangi yüklemiş L tanımlanır; örneğin c.vim C / C ++ veya piton -mode için Python), sadece katlama yöntemi ayarlamanız gerekir syntax
:
set foldmethod=syntax
Bu kadar. Kıvrımlarla çalışmak için en yararlı komutlar:
foldlevel
.foldlevel
.foldlevel
sıfıra - Bütün katların açık olacaktır.Sistematik olarak kullanmak zorunda değilsiniz: Genellikle kıvrımları hareket veya bölümlere göre manuel olarak seçerim. Örneğin, bir paragrafın zfip
katlanması ve sonraki 20 satırın katlanması zf20j
. za
Geçiş yapmak ve zd
kaldırmak için kullanın .
Bu biraz daha fazla çalışma gerektirir ancak katlanmanızın eldeki görevi yansıtmasını sağlar.
folding
Geçerli oturumda @ Anthon'ın cevabı gibi etkinleştirebilirsiniz . Ancak bunu kalıcı hale getirmek istiyorsanız, en azından bu çizgiyi .vimrc
katlama çalışmasına ayarlamalısınız:
set foldmethod=indent
indent
katlama tür, daha fazla görebilirsiniz :help foldmethod
'foldmethod' 'fdm' string (default: "manual")
local to window
{not in Vi}
{not available when compiled without the +folding
feature}
The kind of folding used for the current window. Possible values:
fold-manual manual Folds are created manually.
fold-indent indent Lines with equal indent form a fold.
fold-expr expr 'foldexpr' gives the fold level of a line.
fold-marker marker Markers are used to specify folds.
fold-syntax syntax Syntax highlighting items specify folds.
fold-diff diff Fold text that is not changed.
Şimdi, bir dosyayı her açtığınızda vim
, kodun ayarladığınız yöntemle katlandığını görebilirsiniz. Sonra kullanabilirsiniz za
, zc
, zo
.