2017-03-02 6 views
1

これはちょっと複雑なケースなので、できるだけ簡潔にしようとします。Org-GcalにSpacemacsの小見出しを設定する場合

Spacemacs内のorg-gcalでサブヘッディング(レベル2+)を使用したいと思います。ただし、同期では現在、レベル1の同期のみが許可されています。しかし、私は手作業でlvl 2ヘッダ**を置き換えてテストし、 - (行頭または^で始まります)に置き換えました。これにより、org-gcalはサブヘッダーをGoogleカレンダーのメモセクションに同期させることができます。私の目標は、単一のカスタムコマンドを使用して、指定されたディレクトリを持つすべての* .orgファイルのテキスト置換手順を自動化することです...

(a)すべてを** @行頭に変換(b)変更されたファイルを同期するためにorg-gcal-syncを実行する(c)ファイルが同期されると、すべてのファイルを元に戻し、**に戻し、列ビューの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コマンドに関する一般的な問題があることを確信しています。詳細は次のとおりです。明らかにするには、以下が複雑すぎる場合やもっと簡単な解決策がある場合は、私は何か提案をすることができます。前もって感謝します!!!

対話モード(Cx Ceと)使用
(xah-find-replace-text "aaa" "bbb" "~/emacs/org/Test/." ".org\'" "y" "y" "y" "y") 

、私は上記をテストしてきたし、それが「BBB」と「AAA」のすべてのインスタンスを置き換えますが、私は(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-Googleカレンダー: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

申し訳ありませんリンクが壊れているため、私の評判は2つ以上の投稿を許可していません。

+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) 

は、それらをテストします。もし動作するなら、nilをtに置き換えてください(書き込みファイルの場合)

regexの場合、elisp文字列に二重スラッシュが必要です。

+0

(まだ時間切れで返信する方法を学習しています)(続き)私は私の正規表現が非常に欠けていることを認めています。特にelispに関してはそうです。あなたのコードに関して、私はそれが動作すると信じていますが、私はもう少しそれを使って作業する必要があります。私はそれがlvl 2ヘッダー(例えば、 "" ** "'、 '" - "'など)でしか働かないことを認識しませんでした。私はそれがすべてのサブlvlsで動作することができるかどうかを確認するためにスペースを完全に削除しようとしましたが、エラーが発生しました。もう少し長く演奏しますが、xah-find出力バッファを抑制する方法があるかどうかを知りたがっていますか?ありがとうございます。 – siegfried

+0

@siegfriedいいえ、出力を抑制することはできません。最後の行xah-find-switch-to-outputをコメントアウトしてコメントアウトしてください。 –

関連する問題