* Best way to implement Keywords feature @ 2009-11-05 22:42 Alan E. Davis 2009-11-05 22:58 ` Samuel Wales ` (2 more replies) 0 siblings, 3 replies; 19+ messages in thread From: Alan E. Davis @ 2009-11-05 22:42 UTC (permalink / raw) To: org-mode [-- Attachment #1.1: Type: text/plain, Size: 538 bytes --] In some cases, a single headword entry can relate to a large number of topics. I have tried dealing with longer tag lists: automatic adjustment of tags column (on this list a little utility was posted: org-adjust-tags-column-reset-tags. I THINK that a keyword list may allow more freedom to cross-index, especially if it is easy to use. Can someone suggest a way to implement a keywording system, perhaps with a custom agenda search? Or have others dealt with this issue in innovative ways? I would appreciate any ideas. Alan Davis [-- Attachment #1.2: Type: text/html, Size: 569 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-05 22:42 Best way to implement Keywords feature Alan E. Davis @ 2009-11-05 22:58 ` Samuel Wales 2009-11-05 23:25 ` Alan E. Davis 2009-11-06 9:09 ` Giovanni Ridolfi 2009-11-09 14:52 ` Martin Pohlack 2 siblings, 1 reply; 19+ messages in thread From: Samuel Wales @ 2009-11-05 22:58 UTC (permalink / raw) To: Alan E. Davis; +Cc: org-mode Don't know what you are referring to exactly, but if it is like the following, there are several ideas. * computer * apple * garden * apple The problem is that there will be two apples in the agenda. One such solution is to use header-line-format to display olpath. -- Q: How many CDC "scientists" does it take to change a lightbulb? A: You only think it's dark. [CDC has denied ME/CFS for 25 years] ================================================================= Retrovirus: http://www.wpinstitute.org/xmrv/xmrv_qa.html ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-05 22:58 ` Samuel Wales @ 2009-11-05 23:25 ` Alan E. Davis 2009-11-05 23:40 ` Samuel Wales 0 siblings, 1 reply; 19+ messages in thread From: Alan E. Davis @ 2009-11-05 23:25 UTC (permalink / raw) To: Samuel Wales; +Cc: org-mode [-- Attachment #1.1: Type: text/plain, Size: 1169 bytes --] On Thu, Nov 5, 2009 at 10:58 PM, Samuel Wales <samologist@gmail.com> wrote: > > > One such solution is to use header-line-format to display olpath. > > I don't understand this. In scientific/academic publications, one often sees a list of Keywords in the topmatter. That being said, I am not certain how people use them. There are often a dozen or more. I have had to throttle back my use of tags, to avoid long header lines. Also, tags are limited to head lines, only. I would like to implement a secondary list of keywords, that might be searched in an agenda search. I don't know whether properties would be appropriate, although I understand properties can slow the system down. Don't know. Probably something similar to properties. So, for example, if I am taking notes and indexing video clips or PDFs, a larger number of keywords would enable me to retrieve them in a less structured, free form manner. A custom agenda search would be perfect. Probably barking up a tree. Probably just better use of tags would solve this problem. Keywords, though, could be implemented outside of headlines. Maybe I should just use more headlines. Thanks. Alan [-- Attachment #1.2: Type: text/html, Size: 1519 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-05 23:25 ` Alan E. Davis @ 2009-11-05 23:40 ` Samuel Wales 2009-11-06 11:48 ` Alan E. Davis 0 siblings, 1 reply; 19+ messages in thread From: Samuel Wales @ 2009-11-05 23:40 UTC (permalink / raw) To: Alan E. Davis; +Cc: org-mode We are talking about different things. Your thread, so I will bow out. For your topic, I just add words. Then I use m-x org-agenda s. -- Q: How many CDC "scientists" does it take to change a lightbulb? A: You only think it's dark. [CDC has denied ME/CFS for 25 years] ================================================================= Retrovirus: http://www.wpinstitute.org/xmrv/xmrv_qa.html ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-05 23:40 ` Samuel Wales @ 2009-11-06 11:48 ` Alan E. Davis 2009-11-06 13:28 ` Renzo Been :-) 0 siblings, 1 reply; 19+ messages in thread From: Alan E. Davis @ 2009-11-06 11:48 UTC (permalink / raw) To: Samuel Wales; +Cc: org-mode [-- Attachment #1.1: Type: text/plain, Size: 495 bytes --] Thank you Samuel On Thu, Nov 5, 2009 at 11:40 PM, Samuel Wales <samologist@gmail.com> wrote: > For your topic, I just add words. Then I use m-x org-agenda s. > > This is pretty close to what I have in mind. And I see there are several possible routes, a couple of which seem amenable to a custom agenda command. I think what I want to do is use a search for a Keyword marker (such as "KEYWORDS::") then do the secondary search for the specific keyword. Thank you for the suggestion. Alan [-- Attachment #1.2: Type: text/html, Size: 848 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-06 11:48 ` Alan E. Davis @ 2009-11-06 13:28 ` Renzo Been :-) 2009-11-06 13:46 ` Giovanni Ridolfi 0 siblings, 1 reply; 19+ messages in thread From: Renzo Been :-) @ 2009-11-06 13:28 UTC (permalink / raw) To: emacs-orgmode Alan E. Davis <lngndvs <at> gmail.com> writes: > Thank you Samuel > Samuel Wales <samologist <at> gmail.com> wrote: > > For your topic, I just add words. Then I use m-x org-agenda s. > > This is pretty close to what I have in mind. And I see there are several > possible routes, a couple of which seem amenable to a custom agenda > command.I think what I want to do is use a search for a Keyword marker > (such as "KEYWORDS::") then do the secondary search for the specific > keyword. Thank you for the suggestion.Alan Hi Alan, Another way to set-up keywords could be by using categories. It's a rather old-fashioned way of using org-mode... But you don't need long lines of tags or properties... See the example below. ----- * Topic 1 #+CATEGORY: keyword1 <2009-11-06 Fri> * Topic 2 #+CATEGORY: keyword3 keyword3 <2009-11-07 Sat> ----- When opening an agenda view, the agenda will look like this. No searching needed... ----- Month-agenda (W45-W49): Friday 6 November 2009 keyword1: Topic 1 Saturday 7 November 2009 keyword3 keyword3:Topic 2 ----- Hope this helps, Renzo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Re: Best way to implement Keywords feature 2009-11-06 13:28 ` Renzo Been :-) @ 2009-11-06 13:46 ` Giovanni Ridolfi 0 siblings, 0 replies; 19+ messages in thread From: Giovanni Ridolfi @ 2009-11-06 13:46 UTC (permalink / raw) To: emacs-orgmode, Renzo Been :-) --- Ven 6/11/09, Renzo Been :-) <swangdoodles@gmail.com> ha scritto: > Hi Alan, > > Another way to set-up keywords could be by using > categories. =:-< > It's a rather > old-fashioned way of using org-mode... [smnip] > * Topic 1 > #+CATEGORY: keyword1 > <2009-11-06 Fri> > * Topic 2 > #+CATEGORY: keyword3 keyword3 > <2009-11-07 Sat> Please, Renzo, do *not* promote deprecated behaviours: Manual: 10.4.1 Categories "For backward compatibility, the following also works: if there are *several such lines in a file*, each specifies the category for the text below it. The first category also applies to any text before the first CATEGORY line. However, using this method is _strongly_ deprecated" (first emphasis is mine) Using :PROPERTIES: is the right way to handle such issue. Thanks, Giovanni ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-05 22:42 Best way to implement Keywords feature Alan E. Davis 2009-11-05 22:58 ` Samuel Wales @ 2009-11-06 9:09 ` Giovanni Ridolfi 2009-11-08 11:24 ` Paul Mead 2009-11-09 14:52 ` Martin Pohlack 2 siblings, 1 reply; 19+ messages in thread From: Giovanni Ridolfi @ 2009-11-06 9:09 UTC (permalink / raw) To: org-mode, Alan E. Davis --- Gio 5/11/09, Alan E. Davis <lngndvs@gmail.com> ha scritto: > In some cases, a single headword entry can > relate to a large number of topics. I have tried dealing > with longer tag lists: automatic adjustment of tags column > (on this list a little utility was posted: > org-adjust-tags-column-reset-tags. I THINK that a keyword > list may allow more freedom to cross-index, especially if it > is easy to use. What about properties? * computer * apple :PROPERTIES: :Keyword: Power PC :END: * garden * apple :PROPERTIES: :Keyword: Golden Delicious :END: > > Can someone suggest a way to implement a keywording system, > perhaps with a custom agenda search? Recently something was posted regarding custom search and :PROPERTIES:. However you can already search for keywords in Agenda, please, refer the section of the manual: "Keyword search" > Or have others dealt > with this issue in innovative ways? I think that everything is already there ;-) cheers Giovanni ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-06 9:09 ` Giovanni Ridolfi @ 2009-11-08 11:24 ` Paul Mead 2009-11-08 12:03 ` Matt Lundin 0 siblings, 1 reply; 19+ messages in thread From: Paul Mead @ 2009-11-08 11:24 UTC (permalink / raw) To: Giovanni Ridolfi; +Cc: org-mode Giovanni Ridolfi <giovanni.ridolfi@yahoo.it> writes: > > What about properties? > > * computer > * apple > :PROPERTIES: > :Keyword: Power PC > :END: > * garden > * apple > :PROPERTIES: > :Keyword: Golden Delicious > :END: > > > However you can already search for keywords in Agenda, > please, refer the section of the manual: > "Keyword search" Giovanni I can't find anything in the manual which does anything other than search for TODO keywords, and this functionality would be pretty useful to me - can you point to the section number? Thanks Paul ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-08 11:24 ` Paul Mead @ 2009-11-08 12:03 ` Matt Lundin 2009-11-08 18:18 ` Paul Mead 0 siblings, 1 reply; 19+ messages in thread From: Matt Lundin @ 2009-11-08 12:03 UTC (permalink / raw) To: Paul Mead; +Cc: org-mode Paul Mead <paul.d.mead@googlemail.com> writes: > Giovanni Ridolfi <giovanni.ridolfi@yahoo.it> writes: > >> >> What about properties? >> >> * computer >> * apple >> :PROPERTIES: >> :Keyword: Power PC >> :END: >> * garden >> * apple >> :PROPERTIES: >> :Keyword: Golden Delicious >> :END: >> >> >> However you can already search for keywords in Agenda, >> please, refer the section of the manual: >> "Keyword search" > Giovanni > > I can't find anything in the manual which does anything other than > search for TODO keywords, and this functionality would be pretty useful > to me - can you point to the section number? http://orgmode.org/manual/Matching-tags-and-properties.html - Matt ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-08 12:03 ` Matt Lundin @ 2009-11-08 18:18 ` Paul Mead 2009-11-08 18:51 ` Matthew Lundin 0 siblings, 1 reply; 19+ messages in thread From: Paul Mead @ 2009-11-08 18:18 UTC (permalink / raw) To: Matt Lundin; +Cc: Paul Mead, org-mode Matt Lundin <mdl@imapmail.org> writes: > > http://orgmode.org/manual/Matching-tags-and-properties.html > > - Matt > Thanks Matt, although that allows me to search for a single property (if I use 'Keyword' as an example, this will return a match if I search for 'Keyword="example"'. It doesn't, however work if I want to use more that one keyword. For example, if I set a property 'Keyword: keyword1 keyword2' and search for 'Keyword="example1"' org doesn't find it. I guess what I'm looking for here is an 'extended tag' function, so that I can give a heading as many tags as are required for searching but without cluttering up the line itself. I find that if there are more than two or three short tags, the line get unneccesarily messy. Are there other ways that I've missed that would allow this sort of thing? Thanks Paul ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-08 18:18 ` Paul Mead @ 2009-11-08 18:51 ` Matthew Lundin 2009-11-09 0:00 ` Paul Mead 0 siblings, 1 reply; 19+ messages in thread From: Matthew Lundin @ 2009-11-08 18:51 UTC (permalink / raw) To: Paul Mead; +Cc: Matt Lundin, org-mode Paul Mead <paul.d.mead@googlemail.com> writes: > Matt Lundin <mdl@imapmail.org> writes: > >> >> http://orgmode.org/manual/Matching-tags-and-properties.html >> >> - Matt >> > Thanks Matt, although that allows me to search for a single property (if > I use 'Keyword' as an example, this will return a match if I search for > 'Keyword="example"'. It doesn't, however work if I want to use more that > one keyword. > > For example, if I set a property 'Keyword: keyword1 keyword2' and search for > 'Keyword="example1"' org doesn't find it. It will if you use brackets to perform a regexp match. E.g., Keyword={example1} (...assuming the property is "Keyword: example1 example2".) From the manual page above: ,---- | * If the comparison value is enclosed in curly braces, a regexp match | is performed, with '=' meaning that the regexp matches the property | value, and '<>' meaning that it does not match. `---- Best, Matt ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-08 18:51 ` Matthew Lundin @ 2009-11-09 0:00 ` Paul Mead 2009-11-09 12:27 ` Matthew Lundin 0 siblings, 1 reply; 19+ messages in thread From: Paul Mead @ 2009-11-09 0:00 UTC (permalink / raw) To: Matthew Lundin; +Cc: Paul Mead, org-mode Matthew Lundin <mdl@imapmail.org> writes: > > It will if you use brackets to perform a regexp match. E.g., > > Keyword={example1} > > (...assuming the property is "Keyword: example1 example2".) > > From the manual page above: > > ,---- > | * If the comparison value is enclosed in curly braces, a regexp match > | is performed, with '=' meaning that the regexp matches the property > | value, and '<>' meaning that it does not match. > `---- > > Best, > Matt That's great, but what if I need to match *both* example1 and example2 in a search? I tried a few things but didn't find anything that works. Ideally, I'd be able to specify several keywords in a search on the fly. (I'm sorry if there's a regexp that matches multiple keywords that I don't know - it's a skill which I find keeps presenting surprises!) Thanks Paul ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-09 0:00 ` Paul Mead @ 2009-11-09 12:27 ` Matthew Lundin 2009-11-09 13:05 ` Paul Mead 2009-11-09 14:26 ` Darlan Cavalcante Moreira 0 siblings, 2 replies; 19+ messages in thread From: Matthew Lundin @ 2009-11-09 12:27 UTC (permalink / raw) To: Paul Mead; +Cc: Matthew Lundin, org-mode Paul Mead <paul.d.mead@googlemail.com> writes: > Matthew Lundin <mdl@imapmail.org> writes: > >> >> It will if you use brackets to perform a regexp match. E.g., >> >> Keyword={example1} >> >> (...assuming the property is "Keyword: example1 example2".) >> >> From the manual page above: >> >> ,---- >> | * If the comparison value is enclosed in curly braces, a regexp match >> | is performed, with '=' meaning that the regexp matches the property >> | value, and '<>' meaning that it does not match. >> `---- >> >> Best, >> Matt > > That's great, but what if I need to match *both* example1 and example2 > in a search? I tried a few things but didn't find anything that > works. > > Ideally, I'd be able to specify several keywords in a search on the > fly. > > (I'm sorry if there's a regexp that matches multiple keywords that I > don't know - it's a skill which I find keeps presenting surprises!) Perhaps some regexp expert will come along and show us the way, but, for now, you could search for entries that contain both keywords by entering the following tags/properties search: Keyword={example1}+Keyword={example2} Best, Matt ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-09 12:27 ` Matthew Lundin @ 2009-11-09 13:05 ` Paul Mead 2009-11-09 14:26 ` Darlan Cavalcante Moreira 1 sibling, 0 replies; 19+ messages in thread From: Paul Mead @ 2009-11-09 13:05 UTC (permalink / raw) To: Matthew Lundin; +Cc: Paul Mead, org-mode Matthew Lundin <mdl@imapmail.org> writes: > > Perhaps some regexp expert will come along and show us the way, but, for > now, you could search for entries that contain both keywords by entering > the following tags/properties search: > > Keyword={example1}+Keyword={example2} > > Best, > Matt > Hopefully there's a better way, but thanks for now. I've shortened the 'Keyword' property to 'kw' to reduce typing in the meantime! Thanks Paul ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Re: Best way to implement Keywords feature 2009-11-09 12:27 ` Matthew Lundin 2009-11-09 13:05 ` Paul Mead @ 2009-11-09 14:26 ` Darlan Cavalcante Moreira 1 sibling, 0 replies; 19+ messages in thread From: Darlan Cavalcante Moreira @ 2009-11-09 14:26 UTC (permalink / raw) To: Matthew Lundin; +Cc: Paul Mead, org-mode At Mon, 09 Nov 2009 07:27:19 -0500, Matthew Lundin <mdl@imapmail.org> wrote: > > Paul Mead <paul.d.mead@googlemail.com> writes: > > > Matthew Lundin <mdl@imapmail.org> writes: > > > >> > >> It will if you use brackets to perform a regexp match. E.g., > >> > >> Keyword={example1} > >> > >> (...assuming the property is "Keyword: example1 example2".) > >> > >> From the manual page above: > >> > >> ,---- > >> | * If the comparison value is enclosed in curly braces, a regexp match > >> | is performed, with '=' meaning that the regexp matches the property > >> | value, and '<>' meaning that it does not match. > >> `---- > >> > >> Best, > >> Matt > > > > That's great, but what if I need to match *both* example1 and example2 > > in a search? I tried a few things but didn't find anything that > > works. > > > > Ideally, I'd be able to specify several keywords in a search on the > > fly. > > > > (I'm sorry if there's a regexp that matches multiple keywords that I > > don't know - it's a skill which I find keeps presenting surprises!) > > Perhaps some regexp expert will come along and show us the way, but, for > now, you could search for entries that contain both keywords by entering > the following tags/properties search: > > Keyword={example1}+Keyword={example2} > > Best, > Matt > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode I'd like to make a feature request on this. I like to include tags in a task with the name of a person the task is related to in order to find the task easily when the person wants to talk about it. I don't need to see these tags in the agenda view. I only need them for searching. This is the same problem discussed here and while Keyword={someone}+Keyword={someone else} may work, it is not as convenient as the usual tags. One idea implementing "hidden tags" that should work exactly as the normal tags for searching, but stored in a HIDDEN_TAGS property. To indicate that there are hidden tags a short tag could be added (similar to the ATTACH tag to indicate that there are attachments). If the user types "T" in the agenda view the hidden tags should be showed in addition to the regular ones. The manual says that accessing TODO, LEVEL, and CATEGORY is fast. Therefore, I understand that it is possible to access the HIDDEN_TAGS fast it it intended to, right? One example with such feature would be ,---- | * TODO Some task :HIDDEN:RegularTag:AnotherOne: | :PROPERTIES: | :HIDDEN_TAGS: :AHiddenTag:AnotherHiddenTag: | :END: `---- Maybe we should use a smaller tag (even a single single letter with a different face) instead of HIDDEN to indicate that there are hidden tags. At last, We need a way to tell org which tags should be hidden when specifying org-tag-persistent-alist. If the user inputs a tag that is not in org-tag-persistent-alist then maybe C-u C-c C-c could set it as a hidden tag and "realign all tags in the current buffer" changed to C-u C-u C-c C-c. Would this be hard to implement? - Darlan ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-05 22:42 Best way to implement Keywords feature Alan E. Davis 2009-11-05 22:58 ` Samuel Wales 2009-11-06 9:09 ` Giovanni Ridolfi @ 2009-11-09 14:52 ` Martin Pohlack 2009-11-10 14:47 ` Martin Pohlack 2 siblings, 1 reply; 19+ messages in thread From: Martin Pohlack @ 2009-11-09 14:52 UTC (permalink / raw) To: Alan E. Davis, org-mode Alan E. Davis wrote: > In some cases, a single headword entry can relate to a large number of > topics. I have tried dealing with longer tag lists: automatic > adjustment of tags column (on this list a little utility was posted: > org-adjust-tags-column-reset-tags. I THINK that a keyword list may > allow more freedom to cross-index, especially if it is easy to use. > > Can someone suggest a way to implement a keywording system, perhaps with > a custom agenda search? Or have others dealt with this issue in > innovative ways? > > I would appreciate any ideas. I still have the feeling that tags are the way to go. Searching etc. already works with tags. Their disadvantage seems to be that lines get cluttered if many tags are used. Maybe this can be solved with two approaches: * In agendas, one could have a filter for which tags to show / hide. This would be useful otherwise too, as it would allow to hide context tags in already defined agendas. org-agenda-hide-tags-regex For example, all my contexts start with "@", so I would set it to be "^@work$" to hide redundant information in my work agendas, or use "^@" to remove all context information from a specific agenda. * For plain view, could we have a soft newline between tags and content for an item (like in long-lines-mode)? Tags would be shown on a new line (with indentation etc.) but would be stored on the same line in files? For example, the file content ("\" added by me, should be one long line): *** TODO test1 :keyword1:keyword2:keyword3:keyword4:keyword5: \ keyword6:keyword7:keyword8:keyword9:keyword10:keyword11: Is shown like this in org-mode: *** TODO test1 :keyword1:keyword2:keyword3:keyword4:keyword5:keyword6:keyword7: keyword8:keyword9:keyword10:keyword11: Cheers, Martin Pohlack ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-09 14:52 ` Martin Pohlack @ 2009-11-10 14:47 ` Martin Pohlack 2009-11-20 18:06 ` Carsten Dominik 0 siblings, 1 reply; 19+ messages in thread From: Martin Pohlack @ 2009-11-10 14:47 UTC (permalink / raw) To: Alan E. Davis, org-mode [-- Attachment #1: Type: text/plain, Size: 1707 bytes --] Hi All, Martin Pohlack wrote: > Alan E. Davis wrote: >> In some cases, a single headword entry can relate to a large number of >> topics. I have tried dealing with longer tag lists: automatic >> adjustment of tags column (on this list a little utility was posted: >> org-adjust-tags-column-reset-tags. I THINK that a keyword list may >> allow more freedom to cross-index, especially if it is easy to use. >> >> Can someone suggest a way to implement a keywording system, perhaps with >> a custom agenda search? Or have others dealt with this issue in >> innovative ways? >> >> I would appreciate any ideas. > > I still have the feeling that tags are the way to go. Searching etc. > already works with tags. Their disadvantage seems to be that lines get > cluttered if many tags are used. > > Maybe this can be solved with two approaches: > * In agendas, one could have a filter for which tags to show / hide. > This would be useful otherwise too, as it would allow to hide context > tags in already defined agendas. > > org-agenda-hide-tags-regex > > For example, all my contexts start with "@", so I would set it to be > "^@work$" to hide redundant information in my work agendas, or use > "^@" to remove all context information from a specific agenda. > > * For plain view, could we have a soft newline between tags and content > for an item (like in long-lines-mode)? > Tags would be shown on a new line (with indentation etc.) but would be > stored on the same line in files? > > For example, the file content ("\" added by me, should be one long > line): Please find attached a patch that implements tag filtering for agenda views. Feedback welcome. Cheers, Martin [-- Attachment #2: hide-tags-in-agenda.patch --] [-- Type: text/x-patch, Size: 2883 bytes --] diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 708b193..e146bc0 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -1202,6 +1202,14 @@ When non-nil, this must be the number of minutes, e.g. 60 for one hour." :group 'org-agenda-line-format :type 'boolean) +(defcustom org-agenda-hide-tags-regexp nil + "Regular expression used to fitler away specific tags in agenda views. +Nil means hide no tags." + :group 'org-agenda-line-format + :type '(choice + (const :tag "Hide none" nil) + (string :tag "Regexp "))) + (defcustom org-agenda-remove-tags nil "Non-nil means, remove the tags from the headline copy in the agenda. When this is the symbol `prefix', only remove tags when @@ -4507,9 +4515,20 @@ Any match of REMOVE-RE will be removed from TXT." (save-match-data ;; Diary entries sometimes have extra whitespace at the beginning (if (string-match "^ +" txt) (setq txt (replace-match "" nil nil txt))) - (when org-agenda-show-inherited-tags - ;; Fix the tags part in txt - (setq txt (org-agenda-add-inherited-tags txt tags))) + ;; filter tags here + (when org-agenda-hide-tags-regexp + (setq tags (apply 'append (mapcar + (lambda (x) + (if (string-match org-agenda-hide-tags-regexp x) + nil + (list x))) + tags)))) + ;; Fix the tags part in txt + (if org-agenda-show-inherited-tags + (setq txt (org-agenda-add-inherited-tags txt tags)) + (when org-agenda-hide-tags-regexp + (setq txt (org-agenda-add-local-tags txt tags)))) + (let* ((category (or category org-category (if buffer-file-name @@ -4640,6 +4659,24 @@ Any match of REMOVE-RE will be removed from TXT." 'extra extra 'dotime dotime)))) +(defun org-agenda-add-local-tags (txt tags) + "Remove tags string from TXT, and add non-inherited list of tags. +Inherited tags in TAGS are ignored." + (if (string-match (org-re "\\([ \t]+\\)\\(:[[:alnum:]_@:]+:\\)[ \t]*$") txt) + (setq txt (substring txt 0 (match-beginning 0)))) + (when tags + ;; drop inherited tags + (let ((mytags (apply 'append (mapcar + (lambda (x) + (if (get-text-property 0 'inherited x) + nil + (list x))) + tags)))) + ;; continue with remainder + (when (> (length mytags) 0) + (setq txt (concat txt " :" (mapconcat (lambda (x) x) mytags ":") ":" ))))) + txt) + (defun org-agenda-add-inherited-tags (txt tags) "Remove tags string from TXT, and add complete list of tags. The new list includes inherited tags. If any inherited tags are present, [-- Attachment #3: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: Best way to implement Keywords feature 2009-11-10 14:47 ` Martin Pohlack @ 2009-11-20 18:06 ` Carsten Dominik 0 siblings, 0 replies; 19+ messages in thread From: Carsten Dominik @ 2009-11-20 18:06 UTC (permalink / raw) To: Martin Pohlack; +Cc: org-mode Hi Martin, I have finally applied a modified version of you patch. Thanks! What I modified is this: 1. Your patch did remove the matching tags from the tag list itself, and not only from the agenda display line. Tis had the consequence that secondary tag filtering on such tags would no longer work. I think it is better if that still does work. 2. You can now both add the inherited tags, and remove some tags, not just one or the other. Thanks! - Carsten On Nov 10, 2009, at 3:47 PM, Martin Pohlack wrote: > Hi All, > > Martin Pohlack wrote: >> Alan E. Davis wrote: >>> In some cases, a single headword entry can relate to a large >>> number of >>> topics. I have tried dealing with longer tag lists: automatic >>> adjustment of tags column (on this list a little utility was posted: >>> org-adjust-tags-column-reset-tags. I THINK that a keyword list may >>> allow more freedom to cross-index, especially if it is easy to use. >>> >>> Can someone suggest a way to implement a keywording system, >>> perhaps with >>> a custom agenda search? Or have others dealt with this issue in >>> innovative ways? >>> >>> I would appreciate any ideas. >> >> I still have the feeling that tags are the way to go. Searching etc. >> already works with tags. Their disadvantage seems to be that lines >> get >> cluttered if many tags are used. >> >> Maybe this can be solved with two approaches: >> * In agendas, one could have a filter for which tags to show / hide. >> This would be useful otherwise too, as it would allow to hide >> context >> tags in already defined agendas. >> >> org-agenda-hide-tags-regex >> >> For example, all my contexts start with "@", so I would set it to be >> "^@work$" to hide redundant information in my work agendas, or use >> "^@" to remove all context information from a specific agenda. >> >> * For plain view, could we have a soft newline between tags and >> content >> for an item (like in long-lines-mode)? >> Tags would be shown on a new line (with indentation etc.) but >> would be >> stored on the same line in files? >> >> For example, the file content ("\" added by me, should be one long >> line): > > Please find attached a patch that implements tag filtering for > agenda views. > > Feedback welcome. > > Cheers, > Martin > diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el > index 708b193..e146bc0 100644 > --- a/lisp/org-agenda.el > +++ b/lisp/org-agenda.el > @@ -1202,6 +1202,14 @@ When non-nil, this must be the number of > minutes, e.g. 60 for one hour." > :group 'org-agenda-line-format > :type 'boolean) > > +(defcustom org-agenda-hide-tags-regexp nil > + "Regular expression used to fitler away specific tags in agenda > views. > +Nil means hide no tags." > + :group 'org-agenda-line-format > + :type '(choice > + (const :tag "Hide none" nil) > + (string :tag "Regexp "))) > + > (defcustom org-agenda-remove-tags nil > "Non-nil means, remove the tags from the headline copy in the > agenda. > When this is the symbol `prefix', only remove tags when > @@ -4507,9 +4515,20 @@ Any match of REMOVE-RE will be removed from > TXT." > (save-match-data > ;; Diary entries sometimes have extra whitespace at the beginning > (if (string-match "^ +" txt) (setq txt (replace-match "" nil nil > txt))) > - (when org-agenda-show-inherited-tags > - ;; Fix the tags part in txt > - (setq txt (org-agenda-add-inherited-tags txt tags))) > + ;; filter tags here > + (when org-agenda-hide-tags-regexp > + (setq tags (apply 'append (mapcar > + (lambda (x) > + (if (string-match org-agenda- > hide-tags-regexp x) > + nil > + (list x))) > + tags)))) > + ;; Fix the tags part in txt > + (if org-agenda-show-inherited-tags > + (setq txt (org-agenda-add-inherited-tags txt tags)) > + (when org-agenda-hide-tags-regexp > + (setq txt (org-agenda-add-local-tags txt tags)))) > + > (let* ((category (or category > org-category > (if buffer-file-name > @@ -4640,6 +4659,24 @@ Any match of REMOVE-RE will be removed from > TXT." > 'extra extra > 'dotime dotime)))) > > +(defun org-agenda-add-local-tags (txt tags) > + "Remove tags string from TXT, and add non-inherited list of tags. > +Inherited tags in TAGS are ignored." > + (if (string-match (org-re "\\([ \t]+\\)\\(:[[:alnum:]_@:]+:\\) > [ \t]*$") txt) > + (setq txt (substring txt 0 (match-beginning 0)))) > + (when tags > + ;; drop inherited tags > + (let ((mytags (apply 'append (mapcar > + (lambda (x) > + (if (get-text-property 0 > 'inherited x) > + nil > + (list x))) > + tags)))) > + ;; continue with remainder > + (when (> (length mytags) 0) > + (setq txt (concat txt " :" (mapconcat (lambda (x) x) mytags > ":") ":" ))))) > + txt) > + > (defun org-agenda-add-inherited-tags (txt tags) > "Remove tags string from TXT, and add complete list of tags. > The new list includes inherited tags. If any inherited tags are > present, > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2009-11-20 18:06 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-11-05 22:42 Best way to implement Keywords feature Alan E. Davis 2009-11-05 22:58 ` Samuel Wales 2009-11-05 23:25 ` Alan E. Davis 2009-11-05 23:40 ` Samuel Wales 2009-11-06 11:48 ` Alan E. Davis 2009-11-06 13:28 ` Renzo Been :-) 2009-11-06 13:46 ` Giovanni Ridolfi 2009-11-06 9:09 ` Giovanni Ridolfi 2009-11-08 11:24 ` Paul Mead 2009-11-08 12:03 ` Matt Lundin 2009-11-08 18:18 ` Paul Mead 2009-11-08 18:51 ` Matthew Lundin 2009-11-09 0:00 ` Paul Mead 2009-11-09 12:27 ` Matthew Lundin 2009-11-09 13:05 ` Paul Mead 2009-11-09 14:26 ` Darlan Cavalcante Moreira 2009-11-09 14:52 ` Martin Pohlack 2009-11-10 14:47 ` Martin Pohlack 2009-11-20 18:06 ` Carsten Dominik
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).