[js] 代码块之缩进格式化粘贴

缘起

之前开发了 [js] 代码块自动缩进及 ctrl+/ 添加注释 ,非常好用。

但有时,从外部复制过来的代码可能是 4 空格的,2 空格的或 tab 的,很可能与你的思源设置的 tab 空格数不一致,这时,如果缩进或反向缩会很麻烦,除非先粘贴到其他编辑器中格式化好再粘贴回来。

鉴于这个困扰,开发了这个代码,可以对剪切板中的代码进行处理后再粘贴。

注意,目前仅支持 2 空格,4 空格和 Tab 的缩进方式,其他缩进方式的,请自行修改代码。

功能

在不同的 tab 空格数下,功能不一样,详情请参考下面的预览截图。

默认 ctrl+alt+v 智能转换缩进后粘贴,智能粘贴回根据剪切板中的代码的缩进方式及你目前设置的 tab 空格数自行转换后粘贴。

注意,混合缩进的代码,可能转换不准确,请使用其他编辑器软件处理后再粘贴!

预览

当你的 tab 空格数是 4 的时候,菜单如下

space4.png

当你的 tab 空格数是 2 的时候,菜单如下

space2.png

当你的 tab 空格数是 0 的时候(即 tab 缩进),菜单如下

tab0.png

代码

https://gitee.com/wish163/mysoft/blob/main/%E6%80%9D%E6%BA%90/%E4%BB%A3%E7%A0%81%E5%9D%97%E6%A0%BC%E5%BC%8F%E5%8C%96%E7%B2%98%E8%B4%B4.js

再配合这个 [js] 代码块优化之折叠 / 展开 / 全屏 / 悬浮横向滚动条

及这个 请问思源有没有办法单独调整每个页面的 "显示字号" 和 "页面宽度",要单独调整不影响其它页面 - wilsons 的回帖

体验非常完美!

免责声明

由于涉及文档内容的修改,请仔细测试无误后,谨慎使用,使用前请做好备份工作。由此带来的任何后果,均与本代码及作者无关!!!

给作者加油 💪

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26186 引用 • 108771 回帖
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    194 引用 • 1388 回帖
1 操作
wilsons 在 2025-05-01 00:50:32 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
wilsons
正在努力开发 wilsons 工具箱中 🛠️ 目前已正式入驻爱发电啦!💖 想催更、提需求?欢迎访问 👉 https://afdian.com/a/wilsons