Emacs:使用多个操作转换字符串

时间:2017-08-12 22:34:15

标签: emacs

我知道,荒谬的头衔。这就是我需要做的事情:

看起来像这样的字符串:

* [1.1 Training]()
* [1.1.1 Special Training by Category]()
  * [A. New Hire Orientation Program]()

并为每个添加.md后缀并将结果放入parens中,如下所示:

* [1.1 Training](training.md)
* [1.1.1 Special Training by Category](special_training_by_category.md)
  * [A. New Hire Orientation Program](new_hire_orientation_program.md)

我正在使用Emacs并需要一个宏:

  1. 搜索每个字符串(行)
  2. 复制章节编号,章节字母或句号之后以及结束“]”
  3. 之前的所有内容
  4. 将其转换为小写,删除空格并用下划线替换它们
  5. 将“.md”添加到结果
  6. 在parens之间粘贴结果
  7. 我正在尝试学习正则表达式和字符串操作,但这个似乎非常复杂。任何帮助表示赞赏。

    由于

1 个答案:

答案 0 :(得分:1)

根据您需要执行此操作的频率,您可能希望为其编写命令。但可以使用query-replace-regexpC-M-%)和正则表达式\[\([[:alnum:].]+\) \([[:alnum:] ]+\)\]()以及替换[\1 \2](\,(replace-regexp-in-string " " "_" (downcase \2)).md)来完成此操作。请注意\,:它允许您使用elisp来转换字符串。

链接: