2013-07-04 5 views
13

:PROPERTIES:という行を含めて、誰かが:PROPERTIES:引き出しを完全に隠すように助けてもらえますか?完全に非表示にする:プロパティ:ドロワー(org-mode)

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

私はグーグルで、この機能を見ていないので、私は、コードのいくつかの特別な行はこの機能要求を実現させるために必要とされるであろうことを推測しています。 [言い換えれば、私は、これはいくつかの特別なコードを考案する必要がありますので、それは、スーパーユーザーの質問ではないと思います。]

答えて

12

次の答えは完全に:PROPERTIES:から:END:て、すべてを隠します。これは、(org-cycle-hide-drawers 'children)または(org-cycle-hide-drawers 'all)を評価することによって、またはアウトラインビューを循環させることに関する他の機能と組み合わせてテストすることができます。 org-modeファミリー内のすべての作業が含まれることを展開するための標準的な機能 - 例えば、show-allorg-show-subtree;さまざまなビューのすべての間のタブサイクリングに興味のある人の場合などは、

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

(前に追加の条件を追加することによりorg-cycle-internal-localに簡単に変更があり、:PROPERTIES:引き出しの内側にあるものを明らかに含みます(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)) 

スクリーンショット - 引き出し隠し:

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


スクリーンショット - 引き出し可視:

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

1

今、単純にはできません。つまり、少なくともではない(多くの?)なし余分なコーディング...

問題は次のとおりです。あなたはそれをどのように再表示するのでしょうか?あなたは "..."だけ見えますか?

+0

バッファの上から下への遠足を保存して再検索フォワードのようなシンプルなソリューション、存在する必要があります'で始まるすべての行について:PROPERTIES:'へと単語 '含めて:それは前の行の下に折りたたんように、'と 'コードfold'ボタンをヒット:ENDを。それから、すべてを表示するために「すべてを展開する」ボタンを押し、そこからサイクリングに戻ります。 – lawlist

+0

ケーキの上のアイシングは、コード折り畳みを示すために最初の行の末尾に逆さまに三角形であろう。 :) – lawlist

+0

本格的な解決策が存在する: - – lawlist

関連する問題