代码块功能优化建议

增加最近使用的代码语言

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

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

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

image.png

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

代码选择

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

image.png

就会变成这种

image.png

而我希望的是这种

image.png

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

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

image.png

  • 思源笔记

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

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

    20511 引用 • 79971 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
    1. 最近语言,可以写个插件或代码片段在每次选择了后存储起来,然后加载时按之前存储的顺序优先排序
    2. 代码选择,可能是主题或样式问题,我用官方默认主题和 Asri 没这个问题,Odyssey 有类似问题但又不完全一样。
    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 更新了该回帖
  • 不不不,和收藏夹不一样,收藏夹至少是你喜欢的,有强烈愿望的。

    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 给代码块填充语言即可

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

    我已经实现了这个功能

    疯狂点这个链接

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

    Snipaste20240808113432.png

请输入回帖内容 ...

推荐标签 标签

  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 513 关注
  • Hadoop

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

    86 引用 • 122 回帖 • 615 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 352 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 703 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    9 引用 • 32 回帖 • 128 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    715 引用 • 1236 回帖 • 88 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    11 引用 • 54 回帖 • 145 关注
  • Flume

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

    9 引用 • 6 回帖 • 618 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • 安全

    安全永远都不是一个小问题。

    193 引用 • 813 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • sts
    2 引用 • 2 回帖 • 176 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 54 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 2 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 692 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 3 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 2 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    5 引用 • 26 回帖 • 1 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 324 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1386 回帖 • 325 关注
  • CodeMirror
    1 引用 • 2 回帖 • 125 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 1 关注
  • Oracle

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

    104 引用 • 126 回帖 • 432 关注
  • 分享

    有什么新发现就分享给大家吧!

    245 引用 • 1776 回帖
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 615 关注