代码块功能优化建议

本贴最后更新于 375 天前,其中的信息可能已经时移世易

增加最近使用的代码语言

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

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

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

image.png

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

代码选择

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

image.png

就会变成这种

image.png

而我希望的是这种

image.png

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

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

image.png

  • 思源笔记

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

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

    26771 引用 • 111589 回帖

相关帖子

欢迎来到这里!

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

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

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

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

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

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

    2 回复
  • HugZephyr

    感觉很少能自动识别的

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

    1 回复
  • HugZephyr

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

    1 回复
  • HugZephyr

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

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

    1 回复
  • HugZephyr

    我之前就是按照技巧来的

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

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

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

  • HugZephyr

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

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

  • 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 回复
  • HugZephyr

    我*, 你这么牛逼么

  • HugZephyr 1

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

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

  • muxue via Android

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

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

    2 回复
  • HugZephyr

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

    比如: c 和 python

    image.png

    image.png

  • image.png

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

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

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

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

  • Achuan-2 via Android

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

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

    我已经实现了这个功能

    疯狂点这个链接

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

    Snipaste20240808113432.png

请输入回帖内容 ...

推荐标签 标签

  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    337 引用 • 324 回帖
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    188 引用 • 319 回帖 • 234 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 368 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    125 引用 • 585 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 687 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 1 关注
  • Wide

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

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

    30 引用 • 218 回帖 • 643 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    59 引用 • 22 回帖 • 1 关注
  • GitBook

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

    3 引用 • 8 回帖 • 3 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    53 引用 • 190 回帖
  • 创业

    你比 99% 的人都优秀么?

    81 引用 • 1395 回帖
  • 宕机

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

    13 引用 • 82 回帖 • 74 关注
  • 招聘

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

    188 引用 • 1057 回帖 • 1 关注
  • 区块链

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

    92 引用 • 752 回帖
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 12 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 2 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    188 引用 • 3915 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    326 引用 • 1395 回帖
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 186 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    108 引用 • 153 回帖
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 564 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1340 回帖 • 1 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖