Подтвердить что ты не робот

Добавить пользовательские маркеры в emacs org-mode

Я использую emacs org-mode для различных целей. Наиболее распространенная функция - отметить мои задачи специальными тегами TODO и DONE. Есть ли способ добавить пользовательские теги (например, IN_PROGRESS) и выделить его отдельным цветом?

Кроме того, было бы хорошо, если этот тег будет работать в том же буфере, что и TODO и DONE, поэтому я могу переключаться между ними с помощью тех же горячих клавиш.

4b9b3361

Ответ 1

Я использую следующее в моем init.el, которое устанавливает дополнительные статусы задач и их стили для всех файлов 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")))

Ответ 2

Вы можете сделать это в начале файла:

#+TODO: TODO IN-PROGRESS WAITING DONE

Нажмите C-c C-c на этой строке, чтобы обновить настройку (не требуется для последующих нагрузок файла), и все должно быть веселым.

Как объяснено здесь.

Ответ 3

Я использую следующее для создания ключевых слов TODO, которые выглядят немного как кнопки, чтобы сделать их более четкими в моих очертаниях и повестке дня. Этот стиль пришел из списка рассылки, если мне нужна память.

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

Это делает мою повестку дня следующей: enter image description here

Ответ 4

Чтобы добавить ключевые слова без изменения конкретного файла org, вы можете изменить org-todo-keywords.

Подробнее см. руководство org.

Ответ 5

В качестве альтернативы мелкозернистой

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

который позволяет вам вносить коррективы в каждое состояние TODO, вы можете рассмотреть подход к дихотомии, который по существу делает одно лицо для каждой из двух групп по обе стороны от канала |, например

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

(Этот выбор цвета - это мой текущий переключатель в теме zenburn). То есть они применяются соответственно для групп в

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

Так, например, enter image description here


ETA:

С тех пор мне пришлось бороться с тем, что различные уровни заголовков в режиме org-mode имеют разные расцветки, и было слишком неудобно пытаться найти пары цветов (для org-todo и org-done), которые бы хорошо контрастировали с все уровни заголовка. Кроме того, придется иметь дело с изменением цветных тем Emacs, так как низкий контраст zenburn может быть менее уместным по мере изменения сезона.

Намного проще просто инвертировать цвета по умолчанию. Полученный прямоугольник прямоугольника немного неудобен, поэтому граница помогает сделать его более естественным. Затем я прихожу к схеме, похожей на Стюарта Хикинботтома.

Итак, теперь у меня

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

Это приводит к выбору цвета файла инициализации (load-theme 'deeper-blue t),

enter image description here

(Красный, как в STOP! Сделайте это! Зеленый, как в вас, вы можете свободно играть и играть.)