1840_emacs org-mode babel的语言支持

2023-12-12 22:37

本文主要是介绍1840_emacs org-mode babel的语言支持,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Grey

全部学习内容汇总: GitHub - GreyZhang/g_org: my learning trip for org-mode

1840_emacs org-mode babel的语言支持

主题由来介绍

Babel是org-mode中支持文学式编程以及可重现研究的一个核心模块,之前看过这个插件的优点是功能完善且支持的语言比较多。这一次的内容,主要是看看Babel支持哪些编程语言以及是不是有什么特性。

参考文档以及解读

这部分资料还是主要参考官方文档,如下是文档链接:

Babel: Languages

简单的功能小结

  • Babel支持百种编程语言
  • 随着emacs发布的语言支持多达三四十种
  • 历史原因,还有十几种跟随org发布
  • 针对不支持的语言,也有一个扩展的指导说明

功能包值得注意的地方

emacs内置的编程语言支持之前做其他小结的时候引用看过了,这里不再赘述。看一下随着org发布的表格描述如下:

这么看,其实跟随org发布的主要是一些没有使用GPL许可证分发的一些语言。

这些随着org发布的也有一些我熟悉或者直接用了不少的编程语言。其实不仅是这些,包括伴随着emacs发布的那些,在每一种编程语言对应的链接部分都有对应语言的说明文档。针对我目前经常用的,还是有必要去仔细阅读一下的。

实际探索体验以及效果

这是如何激活一个语言的说明,之前看多语言支持的文学编程以及可重现研究的论文的时候也接触了一点。当时是因为我自己的测试中,发现python代码不执行。其实根本原因就在于,对应的语言支持没开。

如果要开启常用的几种编程语言的支持,可以在emacs的配置中增加如下配置:

;; configurations for babel
;; only use when you want to use code evaluation.
 (org-babel-do-load-languages
       'org-babel-load-languages
       '((python . t)
    (emacs-lisp . t)
    (perl . t)
    (C . t)
    (scheme . t)))

上面的语言的支持配置,其实只有在需要执行代码的时候才需要。如果只是文学式编程,这些功能看起来没有开启的必要,因此,我自己的配置中保留了但是禁用了,以此保证我配置的最小化。

小结

通过这一部分文档的阅读,看得出来如果只是做简单的文学式编程的化,其实目前的功能支持基本上没有什么语言的限制了。因为文档与代码的混合以及代码的tangle等,都不涉及到对语言支持的定制。或许,Babel的功能支持更多在于对可重现方面以及数据处理方面的一些支持。但是这些目前来说,并不是我很期待关注的部分。由此,前面提到的各语言的支持文档只需要做一个泛泛的了解应该就可以继续我个人工作流的定制改进了。

这篇关于1840_emacs org-mode babel的语言支持的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/486184

相关文章

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod