2013-07-04 16 views
13

Birisi bana :PROPERTIES: numaralı satırı da içeren satır dahil olmak üzere :PROPERTIES: çekmecesini tamamen gizlemek için bana yardım edebilir.Aşağıdakileri tamamen gizleyin: ÖZELLİKLER: org modunda çekmece

* TASKS (with deadines) 

    ** Next Action [#A] Ask the geniuses how to do this. :lawlist: 
     DEADLINE: <2013-07-04 Thu > 
     :PROPERTIES: 
     :ToodledoID: 330686790 
     :ToodledoFolder: TASKS 
     :Hash:  afa88f17317bbe2ce0ce661333cdcfb4 
     :END: 
     This line is for notes, which appears underneath the properties drawer. 

* UNDATED (without deadlines) 

    ** Someday [#A] Close but no cigar -- keep trying. :lawlist: 
      :PROPERTIES: 
      :ToodledoID: 330686680 
      :ToodledoFolder: TASKS 
      :Hash:  eb0b8d360b5b1453dd66ed0c5698e135 
      :END: 
     This line is for notes, which appears underneath the properties drawer. 

Googling bu özelliği görmedik, bu yüzden kod bazı özel hatlar bu özellik isteği gerçeğe dönüştürmek için ihtiyaç olacağını tahmin ediyorum. [Başka bir deyişle, bunun bir Süper Kullanıcı sorusu olduğunu sanmıyorum çünkü bu, bazı özel kodlarla icat edilmeye ihtiyaç duyacaktır.]

cevap

12

Aşağıdaki yanıt, :PROPERTIES: aracılığıyla :END: aracılığıyla her şeyi tamamen gizler. (org-cycle-hide-drawers 'children) ya da (org-cycle-hide-drawers 'all) ya da ana hat görünümlerinin çevrimi ile ilgili diğer işlevlerle birlikte değerlendirilerek test edilebilir. org-mode familyasına dahil edilen standart fonksiyonların tümü, örneğin, show-all; org-show-subtree; Çeşitli görüşlerin hepsi arasında sekme bisiklet ilgilenen herkes vb

(require 'org) 

(defun org-cycle-hide-drawers (state) 
    "Re-hide all drawers after a visibility state change." 
    (when (and (derived-mode-p 'org-mode) 
      (not (memq state '(overview folded contents)))) 
    (save-excursion 
     (let* ((globalp (memq state '(contents all))) 
      (beg (if globalp 
        (point-min) 
        (point))) 
      (end (if globalp 
        (point-max) 
        (if (eq state 'children) 
         (save-excursion 
         (outline-next-heading) 
         (point)) 
         (org-end-of-subtree t))))) 
     (goto-char beg) 
     (while (re-search-forward org-drawer-regexp end t) 
      (save-excursion 
      (beginning-of-line 1) 
      (when (looking-at org-drawer-regexp) 
       (let* ((start (1- (match-beginning 0))) 
        (limit 
         (save-excursion 
         (outline-next-heading) 
          (point))) 
        (msg (format 
          (concat 
           "org-cycle-hide-drawers: " 
           "`:END:`" 
           " line missing at position %s") 
          (1+ start)))) 
       (if (re-search-forward "^[ \t]*:END:" limit t) 
        (outline-flag-region start (point-at-eol) t) 
        (user-error msg)))))))))) 

( önce ek koşul ekleyerek org-cycle-internal-local için kolay bir modifikasyon yoktur, :PROPERTIES: çekmece içinde ne olduğunu açığa dahil (t ;; Default action: hide the subtree. . . .

((eq org-cycle-subtree-status 'subtree) 
    (org-show-subtree) 
    (org-unlogged-message "ALL") 
    (setq org-cycle-subtree-status 'all)) 

Ekran görüntüsü - Çekmeceler Gizli:

https://www.lawlist.com/images/org_mode_properties_a.png


Ekran Görüntüsü - Çekmeceler Görünür:

https://www.lawlist.com/images/org_mode_properties_b.png

1

Şu an için bu mümkün değil, en azından (pek çoğu?) Ek kodlama ...

Sorun: Nasıl ortaya çıkarırsınız? Tek başına "..." görür müsün?

+0

tampon yukarıdan aşağıya doğru bir tasarruf gezi ile yeniden arama-ileri gibi basit bir çözüm, olmalı ': ÖZELLİKLER: ile başlayan her satır için': END: 'sözcüğüne kadar ve' code fold' tuşuna basılarak, bir önceki satırın altına katlanır. Daha sonra her şeyi görüntülemek için '' her şeyi aç 'butonunu ve oradan bisiklete geri dönün. – lawlist

+0

Pastadaki krema, bir kod katını belirtmek için ilk satırın sonunda baş aşağı bir üçgen olacaktır. :) – lawlist

+0

Şu an tam teşekküllü bir çözüm var - :) – lawlist