VScode 中的代码折叠似乎不如 IntelliJ。
例如。代码块
def g(a):
print(a)
print(a)
print(a)
print(a)
print(a)
或者,对于 (...),{...},[...](缩进实际上并不是真正的问题。)
例如来自 dart(flutter) 的代码示例:
OutlinedButton(
onPressed: () {
Navigator.pushNamed(
context,
SecondPage.id,
);
},
child: Text("Page 2"),
)
答案 0 :(得分:2)
我假设代码语言是 Python。
<块引用>所以,现在如果我折叠这段代码并尝试复制折叠线,它不会像在 IntelliJ 中那样复制整个折叠
您需要选择整个区域。为此,只需执行 Shift+Down
,然后您就可以复制/粘贴该区域。
如果我在折叠后按 Enter 键,它会在折叠部分创建一条新线,我实际上希望它在折叠部分之后创建一条线。
Python 的折叠区域基于缩进。因此,在折叠后按 Enter
时,新行会被制表,因此它位于区域内。您需要删除该选项卡,以便该行不在该区域内。
一行完成代码折叠
单行折叠,需要使用扩展名Explicit Folding和如下配置:
"[python]": {
"explicitFolding.rules": [
{
"beginRegex": "\"\"\"",
"endRegex": "\"\"\"",
},
{
"indentation": true,
"offSide": true
}
]
}
答案 1 :(得分:1)
三分。其他人已经解决了两个问题,但为了完整起见,我将它们包括在此处,第三个是我自己的贡献。
根据 daiyam 的回答,在折叠代码的开头按 Shift+Down
以选择它和下一个可见行之间的所有内容。这包括所有折叠的代码,然后您可以复制/粘贴这些代码。
我自己的贡献在这里:同样,要在折叠代码后添加新行,要么从折叠代码行的开头按Down
,要么从折叠代码行的末尾按Right
该行,以到达下一行的开头。然后按 Enter
在那里添加一个新行。然后 Up
到达新行的开头。^^
Editor: Show Folding Controls
设置为 always
。^^ 一些潜在的矫枉过正的分析? ...
是的,对于您习惯于在 IntelliJ 中一步完成的事情来说,这似乎是很多步骤,只是它只是额外的两次(箭头)按键。如果您从 IntelliJ 转向 Code,那么您的肌肉记忆可能会很快适应。如果您经常在它们之间来回切换,那可能只是一个问题。
此外,您最初为到达第一条折叠线的起点或终点所做的任何键或鼠标单击都可以替换为不同的单击或按键,以使您到达第一条折叠线的起点而是下一行。所以唯一额外的真的是 Up
之后的 Enter
键,加上(可能非常小)学习曲线要记住转到下一行开始而不是上一行结束。< /p>
我想如果这很重要,您可以使用任何宏应用程序将这些额外的箭头键和 Enter
组合到一个键击中(例如 Shift+Enter
或其他)。我发现自己做了很多这样的事情来使我对不同 IDE 等的使用保持一致。
只是一些想法,以防万一。