【发布时间】:2015-07-16 01:27:00
【问题描述】:
如何在 Visual Studio Code 中折叠或折叠部分代码?
是否支持此功能?
【问题讨论】:
如何在 Visual Studio Code 中折叠或折叠部分代码?
是否支持此功能?
【问题讨论】:
Folding 已推出,现在从 Visual Studio Code version 0.10.11 开始实施。有以下可用的键盘快捷键:
折叠折叠光标处最里面的未折叠区域:
Unfold 展开光标处的折叠区域:
Fold All 折叠编辑器中的所有区域:
Unfold All在编辑器中展开所有区域:
参考资料: https://code.visualstudio.com/docs/getstarted/keybindings
【讨论】:
Fold Level 回答对我来说更有意义。
F1 并输入Fold 或Unfold
截至 2017 年 4 月的 Visual Studio Code 版本 1.12.0,请参阅文档中的 Basic Editing > Folding 部分。
默认键是:
全部折叠:CTRL+K,CTRL+0(零)
折叠级别 [n]:CTRL+K, CTRL+[n]*
全部展开:CTRL+K, CTRL+J
折叠区域:CTRL+K, CTRL+[
展开区域:CTRL+K, CTRL+]
*折叠级别:要折叠除最外层之外的所有类,请尝试 CTRL+K、CTRL+1 kbd>
Mac:使用 ⌘ 而不是 CTRL(感谢 Prajeet)
【讨论】:
ctrl+k,ctrl+num 仅适用于 qwerty 以上的数字而不适用于小键盘
regions 的代码折叠功能已随 v1.17 发布。 Folding by regions documentation。还有v1.19 和1.23。
[一般可以加个空格,比如// region and // endregion到//region and //endregion也可以。]
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`
重要提示:如果您没有在列表中看到您的语言::
每种语言还具有可用于标记的 sn-ps。输入“#”并调用代码完成来查看它们。要为您的语言配置区域标记,请联系语言扩展提供商。
所以输入#,然后输入Ctrl+Space 来查看任何语言的区域标记。
【讨论】:
// region 和 // endregion 不适用于 VS Code 1.22 版(尽管尚未测试低于或高于该版本的版本)。但是// #region 和// #endregion 有效(注意两者中的'#' 和空格)。这样,如果 spaced-comment 规则打开(即未设置为“关闭”或 0),ESLint(如果您正在使用)将不会显示错误。
/* #region Foo Bar */和/* #endregion */
//region 和 //endregion 用于 JavaScript。
<!-- #region --> elements <!-- #endregion -->。它显示折叠部分上#region 之后的文本。它正确地从当前#region 折叠到相应的#endregion,即使有其他嵌套 - 就像任何方程中的括号一样。它记住嵌套区域的折叠设置。 Ctrl+k+Ctrl+[ 和 Ctrl+k+Ctrl+] 在光标处正确关闭/打开折叠。 (这对我来说似乎有点倒退,但是whatevah)很棒的东西!
您应该添加用户设置:
{
"editor.showFoldingControls": "always",
"editor.folding": true,
"editor.foldingStrategy": "indentation",
}
【讨论】:
ctrl + k + 0 :折叠所有层级(命名空间、类、方法、块)
ctrl + k + 1 : 命名空间
ctrl + k + 2 : 类
ctrl + k + 3 : 方法
ctrl + k + 4 : 块
ctrl + k + [ or ] : 当前光标块
ctrl + k + j : 展开
【讨论】:
折叠/展开的默认快捷键是:
Ctrl + Shift + [ : "折叠"
Ctrl + Shift + Alt + [ : "全部折叠"
Ctrl + Shift + ]:“展开”
Ctrl + Shift + Alt + ]:“全部展开”
或者转到 keybindings.json 并根据需要进行更改。
例如:
{
"key": "cmd+k cmd+m",
"command": "editor.foldAll",
"when": "editorFocus"
},
{
"key": "cmd+m cmd+k",
"command": "editor.unfoldAll",
"when": "editorFocus"
},
【讨论】:
ctrl+shift+alt+[ "Unfold all"你写的是[而不是]。如果我错了,请纠正我。
[ 和 ] 位于 退格键 键 (?) 的左侧。
如果所有快捷方式都不起作用(就像我一样),作为一种解决方法,您还可以打开命令面板(Ctrl + 3 或查看 -> 命令面板...) 并输入fold all:
【讨论】:
release 1.0 现在支持折叠:
源码折叠快捷键
有新的折叠动作来折叠源代码区域,基于 他们的折叠水平。
有将级别 1 (Ctrl+K Ctrl+1) 折叠到级别 5 ( Ctrl+K Ctrl+5)。要展开,请使用全部展开 (Ctrl+Shift+Alt+])。
关卡折叠动作不适用于包含 当前光标。
我在键盘上找不到] 按钮(挪威布局),在我的情况下是Å 按钮。 (或者从退格键开始向左和向下两个按钮。)
【讨论】:
使用 JavaScript:
//#region REGION_NAME
...code here
//#endregion
【讨论】:
现在支持此功能,因为Visual Studio Code 1.17。要折叠/折叠您的代码块,只需添加区域标签,例如 //#region my block name 和 //#endregion 如果使用 TypeScript/JavaScript 编码。
例子:
【讨论】:
v1.42 对折叠的外观和功能进行了一些很好的改进。见https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_42.md#folded-range-highlighting:
折叠范围突出显示
由于背景颜色,现在折叠范围更容易发现 对于所有折叠范围。
折叠高亮颜色主题:深色+
该功能由设置 editor.foldingHighlight 和 可以使用颜色 editor.foldBackground 自定义颜色。
"workbench.colorCustomizations": { "editor.foldBackground": "#355000" }折叠优化
折叠指示器上的
Shift + Click首先只折叠内部 范围。Shift + Click再次(当所有内部范围都已折叠时) 也会折叠父母。Shift + Click再次展开一切。
在已折叠的文件上使用折叠命令 (kb(
editor.fold))] 时 范围,下一个展开的父范围将被折叠。
【讨论】:
从版本 1.3.1 (2016-07-17) 开始,Block Collapse 更加方便。
任何后跟缩进行的行都会有一个“-”字符以允许折叠。如果该块被折叠,它将被替换为“+”字符,该字符将打开折叠的块。
(Ctrl + Shift + Alt + ]) 仍然会影响所有方块,关闭一层.每次重复使用都会关闭一个级别。 (Ctrl + Shift + Alt + [) 以相反的方式工作。
万岁,块崩溃终于有用了。
【讨论】:
在 Mac 上,它是 RHS 命令键 ⌘K,而不是代码折叠命令的左侧。
否则左手Command键会删除当前行,⌘K。
【讨论】:
VSCode扩展:Fold Level,一键折叠到你想要的关卡。
【讨论】:
这里是 VS 代码最常见的有用的默认键盘映射。并且您可以轻松地通过自己的键盘映射进行自定义。愉快的编码???
Fold All: CTRL + 0
Unfold All: CTRL + J
Fold Region: CTRL + [
Unfold Region: CTRL + ]
Fold Level 1: CTRL+ 1
Fold Level 2: CTRL+ 2
Fold Level 3: CTRL+ 3
Fold Level 1: CTRL+ 4
【讨论】:
我希望 Visual Studio Code 可以处理:
#region Function Write-Log
Function Write-Log {
...
}
#endregion Function Write-Log
现在 Visual Studio Code 只是忽略它并且不会折叠它。 同时 Notepad++ 和 PowerGUI 处理得很好。
更新:我刚刚注意到 Visual Studio Code 的更新。现在支持!
【讨论】:
注意:这些快捷方式只有在您编辑 keybindings.json 时才能按预期工作
我对默认快捷方式不满意,我希望它们按如下方式工作:
设置:
Preferences: Open Keyboard Shortcuts (JSON) (Ctrl + ⇧ Shift + p)已经有折叠/展开的自定义键绑定?然后你需要更换它们。
{
"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"
},
【讨论】:
折叠/展开当前块使用 (ctrl+k)+(ctrl+l)
【讨论】:
或者,如果您想移除折叠按钮,以获得额外空间:
"editor.folding": false
(添加到您的settings.json 文件中)
【讨论】: