2017-03-02 38 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 - 切換到輸出。 –

相關問題