在设置-偏好设置-源代码中,我们可以在Chrome Dev上启用代码折叠。但我没有找到使用键盘快捷键,例如折叠全部等的方法。我已经在快捷键部分窗口和完整列表中搜索了,但没有成功。我认为在当前版本上无法实现。如果有人知道,请告诉我,我会非常高兴知道。
没有这样的快捷键,因此请尝试在https://crbug.com上建议添加此功能。
同时,您可以手动添加它:
run this code in devtools-on-devtools (see the instruction below)
[
['Shift-Ctrl-[', 'fold'],
['Shift-Ctrl-]', 'unfold'],
['Shift-Ctrl--', 'foldAll'],
['Shift-Ctrl-=', 'unfoldAll'],
].forEach(([key, cmd]) => {
CodeMirror.keyMap['devtools-common'][key] = CodeMirror.commands[cmd];
});
这仅适用于当前的开发者工具实例。
为方便起见,您可以将代码保存在代码片段中,并稍后从那里运行,或通过在命令面板(Ctrl-P或Cmd-P热键)中键入代码片段名称来运行它。
CodeMirror 6原生支持折叠快捷键(参见foldKeymap):
CodeMirror.commands.foldAll();
Uncaught TypeError: Cannot read properties of undefined (reading 'operation')
at CodeMirror.commands.foldAll (foldcode.js:105:8)
at <anonymous>:1:21
foldcode.js中的104-109行:
CodeMirror.commands.foldAll = function(cm) {
cm.operation(function() {
for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)
cm.foldCode(CodeMirror.Pos(i, 0), null, "fold");
});
};
我可以通过调试codemirror事件并将cm
实例保存为全局变量(temp1)来解决它,但如果有人能提供更好的自动化解决方案,我会很感激。
编辑:我在document.getElementsByClassName("CodeMirror")[1].CodeMirror
找到了codeMirror实例,因此一个可行的解决方案是:
CodeMirror.commands.foldAll(document.getElementsByClassName("CodeMirror")[1].CodeMirror)
CodeMirror.keyMap["devtools-common"]["Ctrl-k"]=function()
{let {CodeMirror:instance}=
document.getElementsByClassName("CodeMirror")[1];
CodeMirror.commands.foldAll(instance);
};
编辑2:哦,它只需要大写的K,所以是“Ctrl-K”。现在快捷键也有效了。万岁!
顺便说一句,我已经在Chromium bugtracker的折叠功能线程上发表了评论,希望将其包含进去,因为在编辑/阅读文件时非常有用。目前还没有回应,不知道是否有人还在关注那里的评论: https://bugs.chromium.org/p/chromium/issues/detail?id=328431