Windows için Visual Studio Code'daki kod bölümlerini nasıl daraltabilirim?


771

Visual Studio Code kod bölümlerini nasıl katlayabilir veya daraltabilirim?

Bu özellik destekleniyor mu?

Yanıtlar:


1351

Katlanır kullanıma sunuldu ve şimdi Visual Studio Code sürüm 0.10.11'den beri uygulanmaktadır . Kullanılabilir bu klavye kısayolları vardır:

  • Katla , imlecin en içteki çökmemiş bölgesini katlar:

    • Ctrl+ Shift+[Windows ve Linux'ta
    • macOS'ta + +[
  • Aç / Çıkar imlecindeki daraltılmış bölgeyi açar:

    • CtrlWindows ve Linux'ta + Shift+]
    • macOS'ta + +]
  • Tümünü Katla düzenleyicideki tüm bölgeleri katlar:

    • CtrlWindows ve Linux'ta + ( K=> 0) (sıfır)
    • macOS'ta + ( K=> 0) (sıfır)
  • Tümü Aç / Editör'de tüm bölgeleri açar:

    • CtrlWindows ve Linux'ta + ( K=> J)
    • macOS'ta + ( K=> J)

Referanslar: https://code.visualstudio.com/docs/getstarted/keybindings


2
@ DouglasGaskell Aynı hatayı yaptım. O sıfır değil, Michael Fulton'un Fold Levelcevabı bana daha mantıklı geldi.
Dan Marshall

1
Kod sürümü sorunu, Windows sürümü sorunu veya başka bir şey olup olmadığını bilmiyorum, ancak bilgisayarımda sadece Right-Ctrl ile çalışıyor. Bunu not etmek isteyebilirsiniz!
Mars

6
Temel olarak Ctrl + K, Ctrl + [n] burada n katlamak istediğiniz seviye numarasıdır. Bu nedenle, VSCode'da VS (C #) 'nin eşdeğer bir Ctrl + M, Ctrl + O'su arıyorsanız, bu Ctrl + K, Ctrl + 3 olacaktır.
Yashash Gaurav

3
@ Preza8 Basın F1ve Katla veya
AlexG

2
@ Preza8 Aynı zamanda şu anda onaylanmış tuş takımını da gösterir, eğer atanmamışsa kendiniz atayabilirsiniz. Ayrıca, özel GUI düğmeleri eklemek için bir uzantı olabilir
AlexG

222

Visual Studio Code sürüm 1.12.0, Nisan 2017 itibariyle, bkz. Temel Düzenleme> Katlama belgelerdeki bölümüne bakın.

Varsayılan tuşlar:

Tümünü Katla: CTRL+ K, CTRL+ 0(sıfır)

Katlama Düzeyi [n]: CTRL+ K, CTRL+ [n]*

Tümünü Aç: CTRL+ K, CTRL+J

Katlama Bölgesi: CTRL+ K, CTRL+[

Açılma Bölgesi: CTRL+ K, CTRL+]

* Katlama Seviyesi: en dış sınıflar hariç tümünü katlamak için CTRL+ K, CTRL+1

Mac'ler: yerine kullanın CTRL(teşekkürler Prajeet)


IDE başlatma / kapatma arasındaki katlama durumunu kaydedip geri yükler mi?
Yeşil

Bazı nedenler ctrl+k,ctrl+numsadece sayısal
tuş takımında

2
[N] düzeyine katla, imlecin bulunduğu bölümü katlamaz. Bu beni her zaman beklediğim gibi yapmadığını düşündürüyor. Bu davranışı kapatma seçeneği var mı?
RonnBlack

92

Bölgelere göre kod katlama v1.17 ile geldi. Bölgelere göre katlama belgeleri . Ve v1.19 ve 1.23 .

[Genellikle örneğin, bir boşluk ekleyebilir // region and // endregioniçin //region and //endregionve aynı zamanda çalışacak.]

TypeScript/JavaScript: //#region and //#endregion or // #region and // #endregion
C#:                    #region and #endregion
C/C++:                 #pragma region and #pragma endregion
F#:                    //#region and //#endregion
PowerShell:            #region and #endregion
Python:                #region and #endregion
VB:                    #Region and #End Region
PHP:                   #region and #endregion
Bat:                   ::#region and ::#endregion or REM #region and REM #endregion
Markdown:              <!-- #region --> and <!-- #endregion -->
Golang                 //region and //endregion or //#region and //#endregion
Java                   //#region and //#endregion
CSS/SCSS/Less:         /* #region */ and /* #endregion */ or /*#region*/ and /*#endregion*/
SCSS/Less:             // #region and // #endregion
Go:                    // region, // endregion and // #region, // #endregion
shellscript:           # region and # endregion
Perl5                  #region and #endregion or =pod and =cut`

Önemli: Dilinizi listede görmüyorsanız ::

Her dilde işaretçiler için snippet'ler de vardır. '#' Yazın ve görmek için kod tamamlamayı çağırın. Dilinize göre bölge işaretleyicileri yapılandırmak için dil uzantısı sağlayıcısına başvurun.

Bu nedenle , herhangi bir dil için bölge işaretlerini görmek için #ve ardından Ctrl+ Spaceyazın.



1
// regionve // endregionVS Code sürüm 1.22 ile çalışmıyor (bunun altında veya üstünde sürümleri test etmedim). Ancak // #regionve // #endregionçalışır (her ikisinde de '#' ve boşluğu not edin). Bu şekilde, ESLint (kullanıyorsanız), spaced-commentkural açıksa (yani 'kapalı' veya 0 olarak ayarlanmamışsa ) hata göstermez .
ozanmuyes

CSS'de, aslında /* #region Foo Bar */ve/* #endregion */
toddmo

1
@ozanmuyes dosya türüne (dile) bağlıdır. //regionve //endregionJavaScript içindir.
lealceldeiro

Microsoft'un docker ext'ini yüklerseniz Docker .yaml dosyalarında da güzel çalışır: marketplace.visualstudio.com/…
Robert

v1.41: XML denedim ve işe yaradı! <!-- #region --> elements <!-- #endregion -->. Katlanmış bölümdeki # bölgeyi izleyen metni görüntüler. Herhangi bir denklemde parantez gibi, iç içe yerleştirilmiş başkaları olsa bile, geçerli #region'dan karşılık gelen #endregion'a doğru katlanır. İç içe bölgeler için katlama ayarını hatırlar. Ctrl + k + Ctrl + [ve Ctrl + k + Ctrl +] imleçte kıvrımları doğru şekilde kapatır / açar. (Bu bana biraz geriye, ama whatevah gibi görünüyor) Harika şeyler!
TonyG

73

Bu özellik artık standart derlemede kullanılabilir. Daralt / genişlet kontrollerinin görünmesini sağlamak için, bu ekran görüntüsünde gösterildiği gibi satır numaralarının hemen sağındaki alanın üzerine fare ile gitmeniz gerekir:

Resim açıklamasını buraya girin


31

Kullanıcı ayarlarını eklemelisiniz:

{
    "editor.showFoldingControls": "always",
    "editor.folding": true,
    "editor.foldingStrategy": "indentation", 
}

"editor.foldingStrategy" benim için açık ara en yararlı ipucuydu. Sıvı kodunu (Shopify) düzenliyorum ve kodumu katlayamadım. Bir kez 'otomatik' den 'girintiye' geçiş VS Kod kullandığım belirli bir dil değil, çok yararlı, teşekkürler girintiye baktı
Benjamin

24

Daralt / genişlet için varsayılan kısayol şunlardır:

Ctrl+ Shift+ [: "Katla"

Ctrl+ Shift+ Alt+ [: "Tümünü katla"

Ctrl+ Shift+ ]: "Aç"

Ctrl+ Shift+ Alt+ ]: "Tümünü aç"

Veya keybindings.json adresine gidin ve dilediğiniz gibi değiştirin.

Örneğin:

{
    "key": "cmd+k cmd+m",
    "command": "editor.foldAll",
    "when": "editorFocus"
},
{
    "key": "cmd+m cmd+k",
    "command": "editor.unfoldAll",
    "when": "editorFocus"
},

bu bazı dillerle mi sınırlı? OSX / typescript üzerinde benim için çalışmıyor.
dcsan

1
Lütfen bunu gözden geçirin: ctrl+shift+alt+[ "Unfold all"Bunun [yerine yazdınız ]. Yanlışım varsa düzelt.
fWd82

@dcsan benim için python / linux'da da işe yaramıyor. Ctrl + K, Ctrl + 0 (sıfır) ve Ctrl + K, Ctrl + J kabul edilen cevaba göre çalışıyor
cleary

çalışmıyor
KansaiRobot

19

Kısayollardan hiçbiri çalışmıyorsa (benim gibi), geçici bir çözüm olarak komut paletini ( Ctrl+ 3veya Görünüm -> Komut Paleti ...) de açıp şunu yazabilirsiniz fold all:

resim açıklamasını buraya girin


Sanırım ne olduğunu anladım ... sadece [+] varsa bloğu katlar, örneğin python'da
Helder Sepulveda

@HelderSepulveda Muhtemelen blok yorumları katlıyor, ancak python bunlara sahip değil. Bağladığınız kod birden fazla tek satırlı yorum kullanıyor.
Jorn Vernee

16

ctrl+ k+ 0: Tüm düzeyleri katla (ad alanı, sınıf, yöntem, blok)

ctrl+ k+ 1: ad alanı

ctrl+ k+ 2: sınıf

ctrl+ k+ 3: yöntemler

ctrl+ k+ 4: bloklar

ctrl+ k+ [veya ]: geçerli imleç bloğu

ctrl+ k+ j: Aç


12

Daraltma artık sürüm 1.0'da desteklenmektedir :

Kaynak Kodu Katlama Kısayolları

Kaynak kodu bölgelerini katlama düzeylerine göre daraltmak için yeni katlama eylemleri vardır.

Seviye 1'i ( Ctrl+ K Ctrl+ 1) seviye 5'e ( Ctrl+ K Ctrl+ 5) katlamak için eylemler vardır . Açmak için Tümünü Aç'ı ( Ctrl+ Shift+ Alt+ ]) kullanın.

Seviye katlama eylemleri geçerli imleci içeren bölgeye uygulanmaz.

Klavyemdeki ]düğmeyi (Norveç düzeni) bulmakta sorun yaşadım ve benim durumumda Ådüğme oldu. (Veya geri silme düğmesinden başlayarak iki düğme sola ve bir aşağı.)



4

1.3.1 sürümünden (2016-07-17) itibaren, Blok Daraltması çok daha uygundur.

Girintili bir çizgiyi izleyen herhangi bir satır, daralmaya izin vermek için '-' karakterine sahip olacaktır. Blok daraltılırsa, yerine daraltılmış bloğu açacak bir '+' karakteri gelir.

( Ctrl+ Shift+ Alt+ ]) Yine de bir blok kapanarak tüm blokları etkiler. Tekrarlanan her kullanım bir seviye daha kapattı. ( Ctrl+ Shift+ Alt+ [) Tam tersi şekilde çalışır.

Yaşasın, blok çöküşü sonunda işe yarar.


Buna ek olarak - bir kod bölgesi etrafındaki yorumlardan daha fazlasını çıkarırsanız, kodunuzda özel bölgeler oluşturmak ve tüm özel segmentleri daraltmak için yorumları kullanabilirsiniz! Harika özellik!
Tim Cederquist

Bu, 13 Temmuz 2019 tarihinden itibaren geçerli değildir. Bunun yerine başka bir keboard kısayolu var mı? (her seferinde bir seviye çöküyor / genişliyor mu? {
Martin

3

VsCode'da XML yapılı belge ve kaynak kod düğümlerini genişletmek için düzenleyicinin içindeki kod katlama denetimleri

Burada teknik ipucu yok, sadece VsCode tercihlerinin basit ayarları.

Tercihler'e gidip 'katlama' arayarak kod katlama kontrollerini her zaman VsCode'da göstermeyi başardım. Şimdi her zaman bu kontrolleri göstermeyi seçin. Bu, test ettiğim Angular 8 çözümündeki Şablonlar kodu ve HTML şablonlarıyla çalışır.

Bu, Windows 10 işletim sisteminde çalışan VsCode Insiders 1.37.0 ile test edildi.

Kod katlama denetimlerini her zaman VsCode'da göster


3

v1.42, kıvrımların nasıl göründüğüne ve çalıştığına bazı güzel ayrıntılar ekliyor. Bkz. Https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting :

Katlanmış Aralık Vurgulama

Tüm katlanmış aralıklar için arka plan rengi sayesinde katlanmış aralıkları bulmak artık daha kolay.

vurgulamak

Katlama vurgu rengi Tema: Koyu +

Özellik, ayar editörü tarafından kontrol edilir.

"workbench.colorCustomizations": { "editor.foldBackground": "#355000" }

Katlanabilir İyileştirmeler

Shift + Clickkatlama göstergesinde önce sadece iç aralıkları katlar. Shift + Clickyine (tüm iç aralıklar önceden katlandığında) ebeveyni de katlar. Shift + Clicktekrar herkesi açar.

vardiya tıklaması

Katlama komutu (kb ( editor.fold))] önceden katlanmış bir aralıkta kullanıldığında, bir sonraki katlanmamış üst aralık katlanır.


2

Mac'te, RHS Komut anahtarı, K kod katlama komutlarının solu değil, .

Aksi takdirde, sol Komut tuşu geçerli satırı siler K,.


2

Visual Studio Code 1.17'den beri bu özellik desteklenmektedir . Kod bloğunuzu katlamak / daraltmak için //#region my block nameve gibi bölge etiketlerini eklemeniz yeterlidir.//#endregion TypeScript / JavaScript'te kodlama varsa yeterlidir.

Misal:

Bölge Katlama



0

Keşke Visual Studio Code işleyebilir:

#region Function Write-Log
Function Write-Log {
    ...
}
#endregion Function Write-Log

Şu anda Visual Studio Code bunu yok sayar ve daraltmaz. Bu arada Notepad ++ ve PowerGUI bunu iyi halleder.

Güncelleme: Visual Studio Code için bir güncelleme fark ettim. Bu artık destekleniyor!


0

Not: bu kısayollar yalnızca keybindings.json öğenizi düzenlerseniz beklendiği gibi çalışır

Varsayılan kısayollardan memnun değildim, aşağıdaki gibi çalışmalarını istedim:

  • Katlama: Ctrl+Alt +]
  • Yinelemeli olarak katla: Ctrl+ ⇧ Shift+Alt +]
  • Tümünü katla: Ctrl+ ksonraCtrl +]
  • Açılmak: Ctrl+Alt +[
  • Özyinelemeli olarak açın: Ctrl+ ⇧ Shift+Alt +[
  • Tümünü aç: Ctrl+ ksonra Ctrl+[

Ayarlamak için:

  • Açık Preferences: Open Keyboard Shortcuts (JSON)( Ctrl+ ⇧ Shift+ p)
  • Aşağıdaki snippet'i bu dosyaya ekleyin

    Zaten katlama / açma için özel tuş bağlamalarınız var mı? O zaman onları değiştirmeniz gerekir.

    {
        "key": "ctrl+alt+]",
        "command": "editor.fold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+alt+[",
        "command": "editor.unfold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+shift+alt+]",
        "command": "editor.foldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+shift+alt+[",
        "command": "editor.unfoldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+[",
        "command": "editor.unfoldAll",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+]",
        "command": "editor.foldAll",
        "when": "editorTextFocus && foldingEnabled"
    },
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.