2017-03-02 40 views
1

这是一个复杂的案例,所以我会尽量简短。配置Org-Gcal在Spacemacs中有副标题

我想在Spacemacs中的org-gcal中使用子标题(level 2+)。但是,同步当前仅允许1级同步。但是,我已经手动测试了替换lvl 2头文件**并替换为 - (从行首或^开始)。这允许org-gcal将子标题同步到Google日历的备注部分,并允许我在外出时快速记录。通过使用一个单一的自定义命令和... W/IA指定的目录中我的目标是实现自动化的所有* .ORG文件的文本替换程序

(一)转换线的所有** @开始 - 上(b)运行org-gcal-sync来同步修改后的文件(c)一旦文件同步,反向处理并将所有文件转换回**并允许列视图的组织模式功能等)

具体来说,我使用下列软件包... 1)https://github.com/sineer/spacemacs-calendar-layer(在org-gcal中实现Spacemacs)2)http:// melpa.org/#/xah-find(文本替换)

我缩小了代码直到使用xah-find-replace-text或(最好是)xah-find-replace-text-regex。但是,我很确定我一般在正则表达式,范围和lisp命令方面有问题。详情如下。要清楚的是,如果以下内容太复杂或者有更简单的解决方案,我乐意提供任何建议。提前致谢!!!

(xah-find-replace-text "aaa" "bbb" "~/emacs/org/Test/." ".org\'" "y" "y" "y" "y") 

使用交互模式(CX策),我已经测试上面的,它会取代“AAA”和“BBB”的所有实例,但我更愿意用更多的东西沿着线(xah -find-replace-text-regex“^^”“ - ”“〜/ pathToDir”“y”“y”“y”),因为匹配对于行的开始更具体。请注意,正则表达式版本需要7个参数(与xah-find-replace-text相比,需要8个参数)。

最后,我宁愿通过把类似的东西进入我的.init/.Spacemacs文件自动...

(defun org-gcal-sync-subchildren() 
    (interactive) 
    (xah-find-replace-text-regex "^\*\\*" "--"......etc.) 
    (org-gcal-sync) 
    (xah-find-replace-text-regex "^--" "**".......etc.)) 

参考:ORG-克卡:1)当前的问题:https://开头的github .com/myuhe/org-gcal.el/issues/43

xah-find:1)常规文本查找:https://github.com/xahlee/xah-find/blob/master/xah-find。 el#L556 2)正则表达式文本查找和替换:https://github.com/xahlee/xah-find/blob/master/xah-find.el#L642

对不起,链接断了,但是我的声望不允许我发布两个以上的信息。

+1

@XahLee哇,非常感谢您的包裹回复!我没想到你会亲自回复。 – siegfried

回答

0

看起来像你的问题是正则表达式。

这应该工作:

(xah-find-replace-text-regex "^\\*\\* " "-- " "~/emacs/org/Test/." "\\.org\\'" nil t t) 

(xah-find-replace-text-regex "^-- " "** " "~/emacs/org/Test/." "\\.org\\'" nil t t) 

测试它们。如果作品,更换零到t(写文件)

你需要在正则表达式的elisp字符串双斜线。

+0

(仍在学习如何回复没有时间)(续)。我承认我的正则表达式非常缺乏,特别是当涉及到elisp时。关于你的代码,我确实认为它有效,但我仍然需要更多的工作。我没有意识到它只能用于lvl 2头文件(例如''**“','' - ”'等)。我试图完全删除这个空间,看看它是否可以在所有的子lvls上运行,但我收到了一个错误。我会再玩一会儿,但想知道是否有办法抑制xah-find输出缓冲区?谢谢 – siegfried

+0

@siegfried没有,不能抑制输出,除非你克隆它,并注释掉最后一行xah-find - 切换到输出。 –

相关问题