emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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





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