2013-07-04 12 views
13

Czy ktoś mógłby mi pomóc w całkowitym ukryciu szuflady :PROPERTIES:, w tym linii o numerze :PROPERTIES:.Ukryj całkowicie: WŁAŚCIWOŚCI: szuflada w trybie org.

* 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. 

nie widzę tę funkcję przez Googling, więc zgaduję, że będą potrzebne jakieś specjalne linie kodu, aby ten wniosek fabularny rzeczywistością. [Innymi słowy, nie sądzę, że jest to pytanie Superużytkownika, ponieważ będzie to wymagało wynalezienia z jakimś specjalnym kodem.]

Odpowiedz

12

Poniższa odpowiedź całkowicie ukrywa wszystko od :PROPERTIES: do :END:. Można go przetestować, oceniając (org-cycle-hide-drawers 'children) lub (org-cycle-hide-drawers 'all) lub w połączeniu z innymi funkcjami związanymi z cyklicznymi widokami konturu. Standardowe funkcje rozwijania zawarte w rodzinie org-mode obejmują całą pracę - np. show-all; org-show-subtree; itp

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

Dla każdego, kto interesuje się zakładka rowerowej pomiędzy wszystkich różnych poglądów (w tym ujawniając to, co jest wewnątrz szuflady :PROPERTIES:, nie jest to łatwe modyfikacje org-cycle-internal-local dodając dodatkowy warunek przed(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)) 

Screenshot - Szuflady Ukrytych:

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


Screenshot - Szuflady Widoczny:

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

1

Po prostu nie jest to możliwe, przynajmniej nie bez (dużo?) dodatkowe kodowanie ...

Problem polega na: jak byś to odkrył? Czy widzisz "..." sam?

+0

Musi być proste rozwiązanie, jak re-search-forward z wypadu ocalić od góry do dołu bufora dla każdej linii zaczynającej się od ': PROPERTIES:' do do i włączając słowo ': END:' i naciśnij przycisk 'code fold', aby złożył się pod poprzednią linią. Następnie naciśnij przycisk "rozwiń wszystko", aby wyświetlić wszystko, a następnie wrócić do jazdy na rowerze. – lawlist

+0

Lukier na torcie byłby odwróconym trójkątem na końcu pierwszej linii, aby wskazać fałdowanie kodu. :) – lawlist

+0

Pełne rozwiązanie już istnieje - :) – lawlist

Powiązane problemy