From: Jean Louis <bugs@gnu.support>
To: Christopher Dimech <dimech@gmx.com>
Cc: help-gnu-emacs@gnu.org
Subject: Re: How users start programming in Emacs Lisp...
Date: Tue, 1 Jun 2021 00:53:46 +0300 [thread overview]
Message-ID: <YLVa6nsjXF49eqZ3@protected.localdomain> (raw)
In-Reply-To: <trinity-b909c76a-ecf6-40aa-84ab-1a0ed9a5b419-1622493042031@3c-app-mailcom-bs01>
* Christopher Dimech <dimech@gmx.com> [2021-05-31 23:31]:
> I would like to be able to decide the name from the mini-buffer.
> How can that be done?
Here is the set of improved functions:
- your main buffer name is in variable `rcd-temp-buffer-name'; your
main buffer name should be something unique, descriptive so that it
can be destroyed easily (when necessarily) or followed up;
- run M-x rcd-temp-buffer-ask-name or bind it to key if you wish to
get asked for sub-name
- use C-u prefix to get asked for mode
- if you have many temporary buffers you maybe wish to browse through
such buffers, because they got their main name, the function M-x
rcd-temp-buffer-next will go through such. Bind it to a simple key
and you can press key and browse through temporary buffers quicker.
;;;; ↝ RCD TEMPORARY BUFFERS
(defvar rcd-temp-buffer-mode-history nil)
(defvar rcd-temp-file-directory "~/tmp/")
(defvar rcd-temp-buffer-name "RCD TEMPORARY BUFFER")
(defvar rcd-temp-buffer-modes '(("adoc-mode" . "adoc")
("emacs-lisp-mode" . "el")
("lisp-mode" . ".lisp")
("markdown-mode" . ".md")
("org-mode" . "org")
("sql-mode" . "sql")
("fundamental-mode" . "txt")
("html-mode" . "html")))
(defun rcd-temp-buffer (&optional name mode)
"Generate new temporary buffer."
(interactive "p")
(let* ((format (concat "*" rcd-temp-buffer-name "%s%s*"))
(buffer (if name (format format ": " name) (format format "" ""))))
(switch-to-buffer (generate-new-buffer buffer))
(if current-prefix-arg
(let* ((mode (completing-read
"Mode: "
(map-keys rcd-temp-buffer-modes) nil t nil
'rcd-temp-buffer-mode-history)))
(funcall (intern mode)))
(funcall (intern (or mode "fundamental-mode"))))))
(defun rcd-temp-buffer-ask-name ()
"Generate new temporary buffer by asking for buffer name."
(interactive)
(rcd-temp-buffer
(read-from-minibuffer "Buffer name: ")))
(defun rcd-temp-file (&optional name mode)
"Quickly open temporary file.
Using C-u as prefix will ask you for the mode of the file and
will influence the extension.
NAME may be provided programmatically.
MODE may be provided as string programmatically."
(interactive)
(let* ((mode (or mode
(if current-prefix-arg
(let* ((mode (completing-read
"Mode: "
(map-keys rcd-temp-buffer-modes) nil t nil
'rcd-temp-buffer-mode-history)))
mode)
"fundamental-mode")))
(file (concat rcd-temp-file-directory
(or name (format-time-string "%A-%B-%e-%Y-%T."))
(cdr (assoc-string mode rcd-temp-buffer-modes)))))
(find-file file)
(save-buffer)
(funcall (intern mode))))
(defvar rcd-temp-buffer-list nil)
(defun rcd-temp-buffer-next ()
(interactive)
(unless rcd-temp-buffer-list
(setq rcd-temp-buffer-list (reverse (rcd-list-matching-buffers rcd-temp-buffer-name))))
(let ((rcd-buffer (pop rcd-temp-buffer-list))
(buffer (current-buffer)))
(if rcd-buffer
(if (buffer-live-p rcd-buffer)
(switch-to-buffer rcd-buffer)
(rcd-temp-buffer-next))
(message "No temporary buffers"))))
(defun rcd-temp-buffer-destroy-em ()
(interactive)
(kill-matching-buffers "RCD TEMPORARY BUFFER"))
(defun rcd-list-matching-buffers (query)
"Return list of matching buffers."
(let ((list))
(mapc (lambda (buffer)
(when (string-match query (buffer-name buffer))
(push buffer list)))
(buffer-list))
list))
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/
next prev parent reply other threads:[~2021-05-31 21:53 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-29 20:08 Fortran Topics (outline-minor-mode, require, fixed format) ludvig-faddeev
2021-05-29 20:14 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-29 20:48 ` Jean Louis
2021-05-29 21:26 ` Christopher Dimech
2021-05-29 21:56 ` Jean Louis
2021-05-29 22:07 ` Christopher Dimech
2021-05-29 22:37 ` How users start programming in Emacs Lisp Jean Louis
2021-05-30 1:06 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 2:11 ` Christopher Dimech
2021-05-30 4:32 ` Eduardo Ochs
2021-05-30 7:05 ` Jean Louis
2021-05-30 7:51 ` Eduardo Ochs
2021-05-30 8:31 ` Jean Louis
2021-05-30 19:27 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 22:27 ` Jean Louis
2021-05-30 22:41 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 22:52 ` Jean Louis
2021-05-30 11:43 ` Arthur Miller
2021-05-30 12:08 ` Christopher Dimech
2021-05-30 19:35 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 21:54 ` Jean Louis
2021-05-30 22:06 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 22:38 ` Jean Louis
2021-05-30 22:46 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 22:56 ` Jean Louis
2021-05-30 23:02 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 23:35 ` Jean Louis
2021-05-31 0:21 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-06-01 14:09 ` Arthur Miller
2021-06-01 21:09 ` Christopher Dimech
2021-06-01 21:54 ` Christopher Dimech
2021-05-30 14:44 ` Tomas Hlavaty
2021-05-30 15:23 ` Eduardo Ochs
2021-05-30 19:41 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 19:59 ` Eduardo Ochs
2021-05-31 17:59 ` Tomas Hlavaty
2021-05-30 19:37 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-06-01 10:29 ` Arthur Miller
2021-06-01 11:40 ` Eduardo Ochs
2021-06-01 16:30 ` Jean Louis
2021-06-02 0:54 ` Eduardo Ochs
2021-06-02 3:43 ` Jean Louis
2021-05-30 15:35 ` Eduardo Ochs
2021-05-30 19:42 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-06-01 10:23 ` Arthur Miller
2021-05-30 19:31 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-06-01 10:22 ` Arthur Miller
2021-06-01 10:30 ` Christopher Dimech
2021-05-30 19:23 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 21:33 ` Jean Louis
2021-05-30 21:43 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 22:05 ` Jean Louis
2021-05-30 22:16 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 22:41 ` Jean Louis
2021-05-30 22:49 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 23:01 ` Jean Louis
2021-05-30 23:07 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 23:36 ` Jean Louis
2021-05-31 0:25 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-31 0:34 ` Eduardo Ochs
2021-05-31 8:09 ` Jean Louis
2021-05-30 22:49 ` Tomas Hlavaty
2021-05-30 22:18 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 22:50 ` Jean Louis
2021-05-30 22:59 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-30 23:25 ` Jean Louis
2021-05-30 5:46 ` Jean Louis
2021-05-30 10:32 ` Christopher Dimech
2021-05-30 10:35 ` Jean Louis
2021-05-30 11:08 ` Christopher Dimech
2021-05-30 11:19 ` Jean Louis
2021-05-30 13:55 ` Christopher Dimech
2021-05-30 15:54 ` Jean Louis
2021-05-30 17:22 ` Christopher Dimech
2021-05-30 18:57 ` Jean Louis
2021-05-30 19:48 ` Jean Louis
2021-05-31 20:30 ` Christopher Dimech
2021-05-31 21:53 ` Jean Louis [this message]
2021-05-29 20:36 ` Fortran Topics (outline-minor-mode, require, fixed format) Jean Louis
2021-05-29 20:51 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-29 21:00 ` Jean Louis
2021-05-29 21:27 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-05-29 22:00 ` Jean Louis
2021-05-30 2:04 ` Stefan Monnier via Users list for the GNU Emacs text editor
2021-05-30 2:06 ` Stefan Monnier via Users list for the GNU Emacs text editor
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YLVa6nsjXF49eqZ3@protected.localdomain \
--to=bugs@gnu.support \
--cc=dimech@gmx.com \
--cc=help-gnu-emacs@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.