2012-08-07 36 views
5

タイムスタンプemacs orgmodeのカスタムフォーマットで挿入したいとします。私はちょうど現在の時刻(日付なし!)をこのフォームに挿入したいと思います:[HH:MM]、C-c -を押してください。私は完全にリスプルに慣れており、これを行う方法を理解することができませんでした。 私~/.emacs -fileのための私の出発点は、このようなものです:emacs orgmodeのカスタムタイムスタンプ

(defun org-my-custom-timestamp() 
    (interactive) 
    (:SOME_CODE:) 
) 


(define-key global-map "\C-c-" 'org-my-custom-timestamp) 

今これはorg-my-custom-timestampと呼ばれる私のカスタム関数、「interactivation」とショートカット割り当てだけの定義です。 しかし、私はどんな成功もなしに:SOME_CODE:のために様々なことを試みました。

記載の方法で機能させるには、どのような機能を組み込むことができますか?

経験豊富なemacsユーザーは、この方法を実用的なものにすることも考えていますか、それとももっとスマートな方法ですか?おそらくorg-mode-internal?

答えて

5

組織モードのローカルキーマップはC-c -をバインドするエントリを持っているので、我々はグローバルなものの代わりにそれを変更する必要があります。それは、デフォルトでC-c -にバインドされorg-ctrl-c-minusコマンドを置き換えることを改めて

(defun org-my-custom-timestamp() 
    (interactive) 
    (insert (format-time-string "[%H:%M]"))) 
(add-hook 'org-mode-hook 
      (lambda() 
      (local-set-key "\C-c-" 'org-my-custom-timestamp))) 

注意Orgモードでは、あなた自身で。

+0

ありがとうございました!上記のコードスニペットはうまく動作し、私が探していたものとまったく同じです。このバインディングはorgモードの機能を上書きするので、私はこのコマンドの別のショートカットを見つけることにしました。 – Edward