代码块功能优化建议

增加最近使用的代码语言

选择代码语言的时候, 能不能增加一块(图片框起来的部分), 用来显示最近选择的代码, 而不是一直按照字典序排序

我添加代码块一般是用快捷键添加的, 然后每次添加的代码块, 代码语言都是默认是上次使用的

平时要用很多种语言, 每次都要点一下, 然后 手动输入选择语言, 有点繁琐

image.png

小声: 你再逼我, 我就自己去写 js 了 trollface

代码选择

在代码块中, 选中代码的时候, 如果是下面这种情况, 移动到外部的时候

image.png

就会变成这种

image.png

而我希望的是这种

image.png

因为一般选择的时候, 都是好几行一起选择

每当复制的时候, 我都得小心翼翼的滑动鼠标到固定的区域, 超过一点就不行

image.png

  • 思源笔记

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

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

    23108 引用 • 93041 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • wilsons 1
    1. 最近语言,可以写个插件或代码片段在每次选择了后存储起来,然后加载时按之前存储的顺序优先排序
    2. 代码选择,可能是主题或样式问题,我用官方默认主题和 Asri 没这个问题,Odyssey 有类似问题但又不完全一样。
    2 回复
  • wilsons 2

    哦哦,我知道了,第 2 个问题,原来是因为我没显示行号,所以没这个问题。

    @EmberSky 有个技巧,在没完成选择前不要松开鼠标左键,哪怕选择框消失,比如,拖到左侧时选择框消失,并不要紧,不要松开鼠标左键,继续拖到右侧来选择框又出现了。

    2 回复
  • 其实个人更希望能出一个建议的语言自动识别,开启这个功能后,识别不出来的自动设置为空。

    可以采用“一定能匹配”的方式来识别,只有命中了某一个编程语言特有的关键字,比如 C++ 的 std::,才会使用这个语言。

    但是感觉即便这样也不是很好做,而且可能会拖慢代码块的加载速度。

    2 回复
  • EmberSky

    感觉很少能自动识别的

    vscode 那么牛逼, 自动识别我感觉也一般

    1 回复
  • EmberSky

    第一个我就是这么想的, 不过还没来得及做, 感觉有些功能虽然可以用 代码片段 自己搞, 但是官方能支持最好

    1 回复
  • EmberSky

    我总感觉 issue 和我 收藏夹 有点像, 提了 issue 就等于解决了, 实际上只是记录一下然后放那里吃灰

    当然了, 我还是很相信 d 大一直在解决问题

    1 回复
  • EmberSky

    我之前就是按照技巧来的

    所以说是 小心翼翼放到固定的位置

    如果是行号的问题, 我去取消一下试试

    在我这里, 选择 要比 行号 的优先级高

  • EmberSky

    试了下, 没有行号确实可以

    但是, 没有行号, 感觉好别扭, 淦

  • Keefer

    第一个建议

    我其实没看懂你的问题,我按照我的理解写一下有用就看,没用就划走:我没看懂你为什么要点一下,我觉得是你不会用。要添加代码块只需要按照 Markdown 的语法写就行了,比如我要写 Python 的:````python`,然后直接回车就可以添加 Python 代码块了,并不需要动用鼠标。

    第二个建议

    如楼上回复,我赞同这个问题的成因是样式主题的 Bug,而非思源的 Bug,我在 Tsundoku 主题下,同样没有这个问题。另外,你可以练习一些键盘移动光标的技巧:比如 Home:移动到行首;End:移动到行尾。Ctrl+ 方向键:按照词语移动。这样可以减少小心翼翼移动光标的频率,提高效率。

    就比如你这个需求,如果是我会这样做:

    1. 使用鼠标将光标移动到待选区域首行任意位置(不需要小心翼翼)
    2. 按 Home 键,快速将光标移动到行首。
    3. 按住 Shift 不松开,使用鼠标将光标移动到待选区域尾行。此时待选区域大部分都被选中。
    4. 按 End 键将光标移动到尾行的行尾。此时待选区域已被选中

    行号的问题

    我认为 Siyuan 代码段的主要功能是帮助程序员记录已有代码。需要粘贴到的地方通常是 Sublime Text, VScode 这样的代码编辑器,自然不连同行号一起粘贴是更加合理的。

    但是我们有时也会碰到需要行号的问题,比如要粘贴到 Word 中。这个问题我认为可以通过一些在线小工具解决:代码在线高亮工具 | 将高亮美化的代码一键粘贴到 Word 或 OneNote 中 (highlightcode.com)。 如果这时没网,我认为也可以先将 Siyuan 文档到处成 Word,再从 Word 中复制。

    其他交流

    说起代码选择的问题,我倒是觉得或许可以开发一款插件来支持代码块中使用 Vim 编辑器键位。这样,会使用 Vim 就可以解决这个问题。

    你的问题我没有全部明白,但是尽可能解答了。如果有用你就看看。没用就也不用回了,我平时不看 ld246,不会进一步回复 😂

    1 操作
    Keefer 在 2024-08-07 09:33:49 更新了该回帖
  • wilsons 1

    不不不,和收藏夹不一样,收藏夹至少是你喜欢的,有强烈愿望的。

    issue 更像是妈妈的话或朋友的建议,虽然知道都是为你好,但你听过几个?

    更像是石沉大海,不知何时能见天日。😄

    哈哈哈,所以,求人不如求己,我解决了这个代码选择的 bug

    css 片段中,添加以下 css 样式即可

    /* 取消行号列占用的空间 */
    .code-block .protyle-linenumber__rows {
        position: absolute;
        left: 0;
    }
    /* 当有行号时,代码块右移,给行号列让空间 */
    .code-block .hljs.protyle-linenumber {
        margin-left: 3.6em;
    }
    

    效果

    r11.gif

    2 回复
  • EmberSky

    我*, 你这么牛逼么

  • EmberSky 1

    就他喵的离谱, 我感觉 15 积分根本不足以表示我的感谢

    1 回复
  • 非常感谢你的积分!别客气哈,心意到足矣!凑巧了,感觉可能是空间问题就试了下,没想到还真行。

  • vscode 的自我识别是基于文件后缀的,那个的实现很简单。

    vscode 的 markdown 里面只有最基础的 cpp 什么他能识别出来才会给你高亮。md 里面连 json 都没高亮的。

    2 回复
  • EmberSky

    文件没有后缀的, 会自动识别

    比如: c 和 python

    image.png

    image.png

  • image.png

    这不是能识别吗?这个文件是新建的无标题文档,未保存,更没有扩展名,这说明 vscode 不仅仅是通过后缀识别的。

    我觉得,vscode 可能是基于规则的识别,当然,后缀识别应该是最优先的。如果没有后缀的情况下,不是定义了每种语言基于什么规则,如何高亮显示吗,它可能会选择一种匹配度最高的匹配。所以没扩展名的情况下,有些相似的语言,它也会识别错误。

    那么,Markdown 的规则里肯定没有涉及到具体语言的规则,最多是代码块的规则,所以无法识别具体语言,但如果设置了代码块的语言它就能高亮了。

    注意:以上说法只是个人猜测,没有任何依据。

  • 让 ai 给代码块填充语言即可

  • 最近语言,可以写个插件或代码片段在每次选择了后存储起来,然后加载时按之前存储的顺序优先排序

    我已经实现了这个功能

    疯狂点这个链接

    [js] 代码片段实现代码块最近使用的语言置顶

    Snipaste20240808113432.png

请输入回帖内容 ...
EmberSky
如果感觉我的回答对你有帮助, 请点击 感谢 支持一下, 谢谢! 杭州

推荐标签 标签

  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 651 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 24 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 639 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 700 关注
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    223 引用 • 474 回帖
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • 招聘

    哪里都缺人,哪里都不缺人。

    190 引用 • 1057 回帖
  • danl
    147 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 1 关注
  • V2Ray
    1 引用 • 15 回帖 • 1 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 627 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 102 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 370 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 604 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 439 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖 • 1 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 372 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖 • 1 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 408 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 670 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1706 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1520 回帖
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖 • 1 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖 • 1 关注
  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1395 回帖
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注