From: Jean Louis <bugs@gnu.support>
To: Diego Zamboni <diego@zzamboni.org>
Cc: Gerardo Moro <gerardomoro37@gmail.com>,
emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: Bring up a screen giving option to open a series of orgmode files
Date: Tue, 24 Nov 2020 00:04:06 +0300 [thread overview]
Message-ID: <X7wjxmvr2S76cTTS@protected.rcdrun.com> (raw)
In-Reply-To: <CAGY83EdgTCZ_v6QjYMosBbV511dRRS_PMbJtzgYO=+9giGDrBw@mail.gmail.com>
* Diego Zamboni <diego@zzamboni.org> [2020-11-23 12:53]:
> Hi Gerardo,
>
> Apart from what others have suggested, what you can do if you have a fixed
> list of files you want to quickly access, you could manually define
> keybindings for them. I have four main files where I capture things, so I
> define a submenu that allows me to access them quickly:
>
> (note: I got this idea originally from Sacha Chua's
> https://sachachua.com/blog/2015/02/learn-take-notes-efficiently-org-mode/)
>
> First, I define a helper function to define keybindings that open files.
> Note that this requires lexical binding to be enabled, so that the
> =lambda= creates a closure, otherwise the keybindings don't work.
>
> #+begin_src emacs-lisp
> (defun zz/add-file-keybinding (key file &optional desc)
> (let ((key key)
> (file file)
> (desc desc))
> (map! :desc (or desc file)
> key
> (lambda () (interactive) (find-file file)))))
> #+end_src
>
> (note #2: the map! macro is Doom Emacs-specific, should be replaced with
> `bind-key` or equivalent if you are not using Doom)
>
> Now I define keybindings to access my commonly-used org files.
>
> #+begin_src emacs-lisp
> (zz/add-file-keybinding "C-c z w" "~/Work/work.org.gpg" "work.org")
> (zz/add-file-keybinding "C-c z i" "~/org/ideas.org" "ideas.org")
> (zz/add-file-keybinding "C-c z p" "~/org/projects.org" "projects.org")
> (zz/add-file-keybinding "C-c z d" "~/org/diary.org" "diary.org")
> #+end_src
Another idea how to quickly access those files could be with
completion function which could also be bound to a key.
(defun my-org-files ()
(interactive)
(let* ((list '(("Work" . "~/Work/work.org.gpg")
("Ideas" . "~/org/ideas.org")
("Projects" . "~/org/projects.org")
("Diary" . "~/org/diary.org")))
(completion-ignore-case t)
(file (completing-read "My files: " list))
(file (cdr (assoc file list))))
(find-file file)))
or function that finds all org files and offers completion on such:
(defun my-all-org-files ()
(interactive)
(let* ((my-org-dir "~/Documents/Org")
(all-org (directory-files my-org-dir t "\.org$"))
(alist '())
(all-org-alist (dolist (org all-org alist)
(setf (alist-get (file-name-base org) alist) org)))
(completion-ignore-case t)
(file (completing-read "My files: " all-org-alist))
(file (cdr (assoc file alist))))
(find-file file)))
M-x my-all-org-files
Even better is when you turn on some visual completion package such as
M-x ivy-mode
or
M-x helm-mode
package ivy is in GNU ELPA
next prev parent reply other threads:[~2020-11-23 21:24 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-22 10:01 Bring up a screen giving option to open a series of orgmode files Gerardo Moro
2020-11-22 10:09 ` Jean Louis
2020-11-22 17:35 ` Berry, Charles via General discussions about Org-mode.
2020-11-22 18:33 ` Jean Louis
2020-11-22 19:03 ` Gerardo Moro
2020-11-22 19:15 ` Jean Louis
2020-11-23 3:59 ` Gerardo Moro
2020-11-23 5:21 ` Jean Louis
2020-11-23 8:12 ` Ihor Radchenko
2020-11-23 8:40 ` Gerardo Moro
2020-11-23 9:11 ` Ihor Radchenko
2020-11-23 9:14 ` Gerardo Moro
2020-11-23 9:14 ` Jean Louis
2020-11-24 4:07 ` Gerardo Moro
2020-11-24 7:26 ` Ihor Radchenko
2020-11-24 7:23 ` Ihor Radchenko
2020-11-24 9:28 ` Gerardo Moro
2020-11-24 9:57 ` Ihor Radchenko
2020-11-24 16:26 ` Jean Louis
2020-11-25 3:41 ` Ihor Radchenko
2020-11-25 5:36 ` Jean Louis
2020-11-25 7:15 ` Ihor Radchenko
2020-11-25 11:20 ` Browser org-capture bookmarklet Jean Louis
2020-11-25 12:51 ` Ihor Radchenko
2020-11-25 14:12 ` Jean Louis
2020-11-25 14:50 ` Jean Louis
2020-12-02 9:07 ` Bring up a screen giving option to open a series of orgmode files Jean Louis
2020-12-02 9:53 ` Ihor Radchenko
2020-12-02 10:19 ` Jean Louis
2020-12-02 9:24 ` Jean Louis
2020-12-02 9:56 ` Ihor Radchenko
2020-12-02 10:14 ` Jean Louis
2020-11-24 17:41 ` Jean Louis
2020-12-02 10:17 ` Maxim Nikulin
2020-11-27 2:40 ` Jean Louis
2020-11-27 8:15 ` Alan Schmitt
2020-11-27 12:04 ` Jean Louis
2020-11-28 16:12 ` Maxim Nikulin
2020-11-28 18:10 ` Jean Louis
2020-11-28 15:51 ` Maxim Nikulin
2020-11-28 17:59 ` Jean Louis
2020-11-30 9:35 ` Ihor Radchenko
2020-11-30 10:45 ` Jean Louis
2020-12-01 2:38 ` Ihor Radchenko
2020-12-01 10:30 ` Jean Louis
2020-11-30 17:08 ` Maxim Nikulin
2020-11-30 18:33 ` Jean Louis
2020-12-02 16:41 ` Maxim Nikulin
2020-12-02 17:24 ` Jean Louis
2020-12-09 13:00 ` Jean Louis
2020-12-09 15:03 ` Maxim Nikulin
2020-12-09 16:32 ` Jean Louis
2020-12-09 16:49 ` Maxim Nikulin
2020-12-10 0:04 ` Ihor Radchenko
2020-12-11 6:54 ` Jean Louis
2020-12-11 14:40 ` Maxim Nikulin
2020-12-11 15:22 ` Ihor Radchenko
2020-12-12 3:22 ` Jean Louis
2020-12-13 0:42 ` Ihor Radchenko
2020-12-13 15:00 ` Jean Louis
2020-12-14 12:58 ` Ihor Radchenko
2020-12-14 19:08 ` Jean Louis
2020-12-14 22:27 ` TRS-80
2020-12-14 22:33 ` Jean Louis
2020-12-15 4:42 ` Ihor Radchenko
2020-12-15 5:00 ` Jean Louis
2020-12-16 2:59 ` Ihor Radchenko
2020-12-16 4:05 ` Tom Gillespie
2020-12-18 12:35 ` Jean Louis
2020-12-16 1:48 ` TRS-80
2020-12-16 12:40 ` Maxim Nikulin
2020-12-12 2:49 ` Jean Louis
2020-12-13 0:48 ` Ihor Radchenko
2020-12-13 15:13 ` Jean Louis
2020-12-13 18:02 ` Christopher Dimech
2020-12-13 20:31 ` Jean Louis
2020-12-14 0:34 ` Ihor Radchenko
2020-12-14 0:34 ` Jean Louis
2020-12-14 0:35 ` Ihor Radchenko
[not found] ` <874kl7172r.fsf@localhost>
2020-11-30 10:51 ` Jean Louis
2020-11-22 21:23 ` Berry, Charles via General discussions about Org-mode.
2020-11-23 9:52 ` Diego Zamboni
2020-11-23 21:04 ` Jean Louis [this message]
2020-11-24 9:53 ` John Sturdy
2020-11-24 10:04 ` Detlef Steuer
2020-11-24 13:44 ` Jean Louis
2020-11-24 14:38 ` Jean Louis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=X7wjxmvr2S76cTTS@protected.rcdrun.com \
--to=bugs@gnu.support \
--cc=diego@zzamboni.org \
--cc=emacs-orgmode@gnu.org \
--cc=gerardomoro37@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).