2012-10-03 17 views
13

Sto usando emacs org-mode per vari scopi. La funzionalità più comune è quella di contrassegnare i miei compiti con tag speciali TODODONE. C'è un modo per aggiungere tag personalizzati (ad esempio IN_PROGRESS) e evidenziarlo con un colore separato?Aggiungi marcatori personalizzati a emacs org-mode

Inoltre, sarebbe utile se questo tag si inserisce nello stesso buffer di TODO e DONE così posso passare da uno all'altro utilizzando gli stessi tasti di scelta rapida.

+0

possibile duplicato di [Impostazioni font grassetto per parole chiave TODO in modalità org] (http://stackoverflow.com/questions/7861109/bold-font-settings-for -todo-keywords-in-org-mode) –

risposta

15

Io uso il seguente nel mio init.el, che definisce gli stati compito supplementare ed i loro stili per tutti i file org:

(setq org-todo-keyword-faces 
     '(
     ("NOT-TODO" . (:foreground "blue" :weight bold)) 
     ("IF-TIME" . (:foreground "yellow" :weight bold)) 
     ("NOT-REPRO" . (:foreground "purple" :weight bold)) 
     )) 

(setq org-todo-keywords 
     '((sequence "TODO" "NOT-TODO" "NOT-REPRO" "IF-TIME" "DONE"))) 
+0

grazie, esattamente quello che mi serve – mishadoff

+0

Grazie! Cosa usi per NON-TODO; perché non rimuovere semplicemente la parola chiave? –

+1

@SamHasler, 'NOT-TODO' è un po 'come' WONTFIX', che indica un elemento di azione risolto (al contrario di un titolo che non è mai stato contrassegnato per l'azione). Inizialmente, ho iniziato a utilizzarlo quando lavoravo con i tester che stavano sottoponendo a problemi che a volte erano in conflitto con altri requisiti o vincoli. Ora lo uso nei miei progetti personali prima di archiviare un oggetto su cui ho cambiato idea, soprattutto se ho fatto in qualsiasi momento un momento. Dovrebbe sempre includere una spiegazione, e ora lo uso con '(@)' in modo che venga richiesta una nota quando la si imposta. – harpo

14

Si può fare questo all'inizio del file:

#+TODO: TODO IN-PROGRESS WAITING DONE 

Premere C-c C-c su quella linea per aggiornare l'installazione (non necessario per i successivi carichi di file), e tutto dovrebbe essere jolly.

Come spiegato here.

+0

buon punto se abbiamo bisogno solo di una personalizzazione di file – mishadoff

5

Per aggiungere parole chiave senza modificare il file org specifico è possibile modificare org-todo-keywords.

Vedere the org manual per ulteriori informazioni.

13

Io uso il seguente per la produzione di TODO parole chiave che sembrano un po 'come i tasti per rendere si distinguono più chiaramente nei miei contorni e nei miei programmi. Questo stile è venuto dalla mailing list se la mia memoria mi serve.

(setq org-todo-keywords 
    '((sequence "TODO" 
     "MAYBE" 
     "NEXT" 
     "STARTED" 
     "WAITING" 
     "DELEGATED" 
     "|" 
     "DONE" 
     "DEFERRED" 
     "CANCELLED"))) 

    (setq org-todo-keyword-faces 
    '(("PROJ" :background "blue" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("TODO" :background "red1" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("NEXT" :background "red1" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("STARTED" :background "orange" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("WAITING" :background "yellow" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("DEFERRED" :background "gold" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("DELEGATED" :background "gold" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("MAYBE" :background "gray" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("APPT" :background "red1" :foreground "black" :weight bold :box (:line-width 2 :style released-button)) 
     ("DONE" :background "forest green" :weight bold :box (:line-width 2 :style released-button)) 
     ("CANCELLED" :background "lime green" :foreground "black" :weight bold :box (:line-width 2 :style released-button)))) 

Questo rende il mio ordine del giorno simile al seguente: enter image description here

+0

Ho iniziato a utilizzare parole chiave e volti, ecco uno snippet in modo che i miei vecchi stati specifici del file continuino a essere nel tuo stile: '(set-face-attribute 'org-todo nil : background" red1 " : primo piano "nero" : peso 'bold : box' (: line-width 2: style released-button)) '. Se trovo degli stati 'DONE' rimasti, posso correggerlo in modo simile a' (set-face-attribute 'org-done ... '. –

1

In alternativa alla grana fine

(setq org-todo-keyword-faces 
     '(... 
     ) 

che consente di effettuare le regolazioni per ogni TODO stato, si potrebbe considerare un approccio dicotomico, che essenzialmente fa una faccia per ciascuno dei due gruppi su entrambi i lati della pipa |, ad esempio

(set-face-attribute 'org-todo nil 
        :foreground "#AFD8AF" 
        ) 
(set-face-attribute 'org-done nil 
        :foreground "#CC9393" 
        ) 

(Questa scelta di colore è il mio interruttore di corrente in zenburn tema.) Cioè, queste si applicano, rispettivamente, per i gruppi in

TODO1 TODO2 ... TODOk | DONE1 DONE2 ... DONEn 

Così, per esempio, enter image description here


ETA:

Da allora ho dovuto lottare con il fatto che vari livelli di titolo org-mode hanno vari colori, ed era troppo scomodo cercare di trovare coppie di colori (per org-todo e org-done) che contrasterebbero piacevolmente con tutti i livelli di titolo. Inoltre, avrebbe dovuto affrontare il cambiamento dei temi cromatici di Emacs, poiché lo zenburn a basso contrasto potrebbe essere meno appropriato al variare della stagione.

È molto più semplice invertire semplicemente i colori predefiniti.Il bordo del rettangolo risultante è un po 'scomodo, quindi il bordo aiuta a renderlo un po' più naturale. Poi, arrivo a uno schema molto simile a quello di Stuart Hickinbottom.

Così mi hanno ora

(set-face-attribute 'org-todo nil 
        :box '(:line-width 2 
          :color "grey75" 
          :style released-button) 
        :inverse-video t 
        ) 
(set-face-attribute 'org-done nil 
        :box '(:line-width 2 
          :color "grey75" 
          :style released-button) 
        :inverse-video t 
        ) 
(set-face-attribute 'org-priority nil 
        :inherit font-lock-keyword-face 
        :inverse-video t 
        :box '(:line-width 2 
          :color "grey75" 
          :style released-button) 
        ) 

Questo produce, con il colore di file init scelta (load-theme 'deeper-blue t),

enter image description here

(Rosso come in ARRESTO! Fare questo! Verde come in voi sono liberi di vai e gioca.)

Problemi correlati