2012-08-07 12 views
5

Vorrei inserire un timestamp in un formato personalizzato in emacs orgmode. Voglio inserire solo l'ora corrente (senza data!) In questo formato: [HH: MM], premendo C-c -. Sono completamente nuovo di lisp e non riuscivo a capire come farlo. Il mio punto di partenza per la mia ~/.emacs -file è come questo:Timestamp personalizzato in emacs orgmode

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


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

Ora, questo è solo la definizione della mia funzione personalizzata chiamata org-my-custom-timestamp, il "interactivation" e un collegamento assegnazione. Tuttavia ho provato varie cose per :SOME_CODE: senza alcun successo.

Cosa può essere inserito nella funzione per farlo funzionare nel modo descritto?

Qualche utente esperto di emacs considera questo modo di affrontarlo in modo pratico o esiste un modo più intelligente di farlo? Forse org-mode-internamente?

risposta

5
keymap locale

di modalità Org ha una voce che lega C-c -, quindi dobbiamo cambiare al posto di un Global One:

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

Nota ancora una volta che sostituisce il comando org-ctrl-c-minus, che è destinato a C-c - di default in modalità Org, con il tuo.

+0

Grazie mille! Il Code-Snippet sopra funziona perfettamente e fa esattamente quello che stavo cercando! Dal momento che questa associazione avrebbe sovrascritto una funzione in modalità org ho deciso di trovare un'altra scorciatoia per questo comando. – Edward