配置Org-Gcal在Spacemacs

时间:2017-03-02 04:32:52

标签: emacs elisp spacemacs

这是一个复杂的案例,所以我会尽量简短。

我想在Spacemacs中的org-gcal中使用子标题(2级以上)。但是,同步当前仅允许1级同步。但是,我手动测试了替换lvl 2头**并替换为 - (从行的开头或^开始)。这允许org-gcal将子标题同步到Google日历的笔记部分,并允许我在外出时关注快速笔记。我的目标是使用一个自定义命令自动化所有* .org文件的文本替换过程,并使用一个自定义命令...

(a)将所有** @行开头转换为 - 在指定目录的所有文件上转换(b)运行org-gcal-sync同步修改文件(c)一旦文件同步,反向处理和将all-back转换回**并允许列视图的org-mode功能等。

具体来说,我正在使用以下软件包... 1)https://github.com/sineer/spacemacs-calendar-layer(在Spacemacs中实现org-gcal)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") 

使用交互模式(C-x C-e),我已经测试了上述内容,它将取代所有" aaa"与" bbb",但我更喜欢使用更多的东西(xah-find-replace-text-regex" ^ **"" - & #34;"〜/ pathToDir"" y"" y"" y")因为匹配将更具体到a的开始线。请注意,正则表达式版本需要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-Gcal: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 个答案:

答案 0 :(得分: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)

测试它们。如果有效,请将nil替换为t(用于写入文件)

你需要在elisp字符串中使用双斜杠来表示正则表达式。