代码块内部的org-mode宏和使用babel

 漫漫瞹fyS-1908 发布于 2023-01-01 15:42

受到这篇伟大帖子的启发,我正在尝试使用org-modebabel发出查询的组合elasticsearch.例如,计算索引中的条目数:

#+BEGIN_SRC sh
curl -XGET 'http://my.uri.example:8080/index/_count'
#+END_SRC

C-c C-c当点在块中时,可以使用上面的代码进行评估.1

另一方面,可以在组织文档中定义宏.我的问题是:是否可以定义一个宏

#+MACRO: live-db http://my.uri.example:8080

并重写代码块如下:

#+BEGIN_SRC sh
curl -XGET '{{{live-db}}}/index/_count'
#+END_SRC

开箱即用,对我来说,它没有用......似乎babel在评估块之前没有扩展宏.想法?

编辑

现在,一旦我了解到我可以使用es-mode,我就不会对我的问题进行微调.考虑以下两个请求:

#+BEGIN_SRC es :url http://mu.uri.stage:8080
GET /users/_search?pretty
{
  "query": {
    "match_all":{}
  }
}
#+END_SRC

#+BEGIN_SRC es :url http://mu.uri.live:8080
GET /users/_search?pretty
{
  "query": {
    "match_all":{}
  }
}
#+END_SRC

它们只是URL不同.我想定义两个宏:

#+MACRO staging http://my.uri.stage:8080
#+MACRO live http://my.uri.live:8080

然后使用宏作为块的变量.可能吗?


1确保启用评估sh.添加如下内容:

(org-babel-do-load-languages
 'org-babel-load-languages
 '((sh . t)))

到你的.emacs.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有