2017-08-12 19 views
0

我知道,可笑的标题。这就是我需要做的:Emacs:转换多个操作的字符串

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

并添加.md后缀为每处导致括号,就像这样::

* [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) 

我看起来像这样的

采取串m使用Emacs并需要一个宏:

  1. 搜索每个字符串(行)
  2. 所有内容复制的章节号,章节字母,或周期,前收盘“]”后
  3. 改造它降低的情况下,删除空格并用下划线
  4. 添加“.MD”的结果
  5. 替换它们在括号

我想学习正则表达式和字符串操作之间

  • 粘贴的结果,但是这一次似乎很复杂。任何帮助表示赞赏。

    感谢

  • 回答

    1

    根据您需要多长时间做到这一点,你可能会想要写一个命令它。但是可以用query-replace-regexpC-M-%)与正则表达式\[\([[:alnum:].]+\) \([[:alnum:] ]+\)\]()和替换[\1 \2](\,(replace-regexp-in-string " " "_" (downcase \2)).md)完成。请注意0​​:它允许您使用elisp来转换字符串。

    链接:

    +0

    我在哪里可以学习阅读您​​发布的答案吗?我会一次复制并使用它,但我想破译它并在其他地方应用逻辑。 (“给一个人一条鱼,你喂他一次,教一个人去钓鱼,你给他一辈子的生活”类型的东西) – SeaDude

    +0

    增加了一些应该解释一切的链接。 – jpkotta

    +0

    为了增强钓鱼功能,请阅读(并搜索!)Emacs中的手册:'C-h i g(elisp)Regular Expressions'。您可能需要了解如何使用信息阅读器:从'* info *'缓冲区中,您可以输入'h'开始它的教程,'d'返回到顶层页面(其中有一些有用的注释最佳)。 – phils