> Sent: Sunday, December 13, 2020 at 11:00 PM > From: "TRS-80" <lists.trs...@isnotmyreal.name> > To: emacs-orgmode@gnu.org > Subject: Re: Org Capture Menu cannot be fully viewed > > On 2020-12-13 16:02, pie...@caramail.com wrote: > > > > Would that apply with respect to inserting long headings or > > descriptions in org file? > > Yes. If you have not used completing-read, just play around with it a > bit and you will very quickly see how it works. It takes a list (Elisp > data type) as input, on which you can do narrowing selection as you > type. > > Ivy was one of recommendations which I can second, I prefer it's more > intuitive (to me) interaction style and support for native > completing-read format. But there are (many) others, too. > > > Example: > > > > ;; "Site_SubType: > > ;; [1a] Settlement > Encampment > > ;; [1a] Settlement > Hamlet or Village > > ;; [1a] Settlement > Town or City > > [...] > > However to make it even simpler to use / maintain your candidate lists, > I would just put them in a simple plain text file, aligned to left > margin. Example: > > File name: Site_SubType > > [1a] Settlement > Encampment > [1a] Settlement > Hamlet or Village > [1a] Settlement > Town or City
That would be my way to attack it, by storing any pre-defined things with a field and a value in a record master file. > Then you need a function to read from plain text file with your "list" > of candidates, and turn that into an (Elisp data type) list: > > #+begin_src emacs-lisp > > (defun my-file-to-list (file) > "Read FILE and return it as a list of strings. > > List items will be split upon newlines." > (with-temp-buffer > (insert-file-contents file) > (split-string (buffer-string) "\n" t))) > > #+end_src > > You then use the above function (with filename argument) for your > candidate list in completing-read. Modifying Jean Louis' earlier > example, it now becomes: > > #+begin_src emacs-lisp > > (completing-read "Choose: " > (my-file-to-list "/path/to/Site_SubType")) > > #+end_src > > You can even use this to fill in Org Properties. Or you can use Org > Properties similar native completion, although by default that only uses > whatever values already exist in the buffer (which therefore could be > "none"), instead of your specified controlled vocabulary file as I used > above. I (by far) prefer the controlled vocabulary method, for lots of > reasons. > > Cheers, > TRS-80 > >