代码块代码很长, 如何快速删除代码块代码

遇到的问题

代码块很长, 如何快速将代码块中的内容全部删除

预期的效果

可以快速选中代码块中的所有内容, 或者直接删除代码块中的所有内容

1 个赞

1, 如果你编码习惯够好的话,直接折叠选中就能删。

2, 如果没有缩进,没办法折叠:

  • 先光标移到代码块的前面一行
  • ctrl+f查找代码块的标记 : [ ``` ]
  • 跳转到代码块尾部之后,按住shift点击代码块末尾即可全部选中
  • 再精简一下,双击代码块的前面三个点选中,然后按ctrl+f,按住shift点代码块末尾即可全选
2 个赞

请问有大佬知道有 外挂或 正则表达式 regex能直接删除代码块吗?
希望能用正则一键删
谢谢

下面这个代码执行第一次选中光标所在行,第二次选中所在块,你应该只是想选中某个很长的代码块删除,不是需要用正则删除所有代码块吧。

基本配置参 QuickAdd JS & Templater JS 简介及相互修改“QuickAdd Capture 加载内部代码”。

js quickadd 代码,点击展开
const Editor = app.workspace.activeEditor.editor, line = Editor.getCursor().line
, secs = app.metadataCache.getFileCache(app.workspace.getActiveFile()).sections
Editor.getSelection() ? secs.map(p=> { let s = p.position.start.line, ed = p.position.end.line;
  (line >= s && line <= ed) && Editor.setSelection({line: s, ch: 0}, {line: ed, ch: p.position.end.col})
}) : Editor.setSelection({line: line, ch: 0}, {line: line, ch: Editor.getLine(line).length})
1 个赞

PlayerMiller大佬,多謝回覆

我的想法是如果有標題層級混雜的一篇長文件,把要刪除的區域做成代碼塊。((或加標記1(deleteHEAD), 標記2(deleteTAIL))
所以一篇長文件,會有數個不相鄰 的代碼塊 (或加上頭尾標記的待刪除區域)

接著用正則表達式或其他便捷方式,把 數個代碼塊(待刪除區域)全部刪除。

產生代碼塊(待刪除區域)的方式用正則表達式(例如把 標題5 (5個井號) 換成 三個反引號(deleteHEAD)) 在下一個高於標題5層級(例如標題1-4) 的上面一行插入 三個反引號(deleteTAIL),形成一個代碼塊(待刪除區域)。依此類推)

上面的方式,我目前仍在(思考及模擬不同的情境)學習測試中,謝謝您

Codeblock Customizer 插件:删除按钮

2 个赞

好的,因为匹配正则比较基础,我在想你为什么会问这个问题。

1 个赞

你可以用linter写一个正则替换, 把所有要删的代码块加上del标记

1 个赞