From: Jakub Jankiewicz <jcubic@onet.pl>
To: Dan Hitt <dan.hitt@gmail.com>
Cc: Gregory Heytings <ghe@sdf.org>, help-gnu-emacs@gnu.org
Subject: Re: Opening multiple files in a single buffer?
Date: Sat, 13 Jun 2020 20:41:21 +0200 [thread overview]
Message-ID: <20200613204121.44ed6dab@jcubic> (raw)
In-Reply-To: <CAOphizLdSGAeNRufesz-cax9uAST7BRSdHUL7ybbN5QmXVO4Aw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2423 bytes --]
On Sat, 13 Jun 2020 11:10:00 -0700
Dan Hitt <dan.hitt@gmail.com> wrote:
> On Sat, Jun 13, 2020 at 7:41 AM Gregory Heytings <ghe@sdf.org> wrote:
>
> >
> > .....
> >
> > For example, suppose you write a book, which has fifteen chapters in files
> > chap1.tex, ..., chap15.tex. Opening these files in a single buffer means
> > that you could use isearch-{forward,backward} in the whole book. (I know
> > that multi-isearch-buffers could be used in this particular case, but it
> > is not as convenient to use.) You could also use query-replace on the
> > whole book, or reindent all files, or execute shell-command on all files
> > at once, and so forth. (Again I know that all this can be done with
> > already existing features, e.g. through dired, but again I find them not
> > as convenient as what I have in mind.)
> >
> > Each file would have its own major and minor modes, and the mode-line
> > would adapt depending on the file corresponding to the buffer portion in
> > which the point is currently located.
> >
> >
> >
> Another application would be to open all the code files in a directory into
> a single buffer, and do replace-string or query-replace on all of them, to
> rename variables, for example. You'd want to be able to mark the
> sub-buffers read-only or not independently, since (e.g.) not all of them
> might be owned by the same account. And you might want to make a provision
> so that one file could appear more than once in the linear list of
> sub-buffers (as could happen naturally with links).
>
> I think your idea is a real winner.
>
> I have no idea how hard it would be to implement, but could it be just a
> matter of making a new kind of buffer, say a multi-file buffer, and then
> just specifying the new behavior for all buffer functions for this new kind
> of buffer?
It can be just multi-file-mode major mode where you open file/buffers as
linked list and have functions that operate on that list like on one buffer.
You should be able to add and remove file/buffers form that list. With this
you will be able to write lisp function that open all the files and create a
list. Then you will need to implement the display.
I'm not elisp expert, but it look like something you can try to create. Maybe
start with POC to test if something like this is possible.
--
Jakub Jankiewicz, Web Developer
https://jcubic.pl/me
[-- Attachment #2: Podpis cyfrowy OpenPGP --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2020-06-13 18:41 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-13 14:31 Opening multiple files in a single buffer? Gregory Heytings
2020-06-13 15:20 ` Douglas Lewan
2020-06-13 16:53 ` Gregory Heytings
2020-06-13 15:21 ` tomas
2020-06-13 15:36 ` Douglas Lewan
2020-06-13 15:53 ` tomas
2020-06-13 15:49 ` Jakub Jankiewicz
2020-06-13 16:43 ` Stefan Monnier
2020-06-14 11:11 ` Michael Albinus
2020-06-15 8:26 ` Gregory Heytings
2020-06-15 9:33 ` tomas
2020-06-15 9:52 ` Gregory Heytings
2020-06-15 10:58 ` tomas
2020-06-15 12:48 ` Joost Kremers
2020-06-15 14:24 ` Gregory Heytings
2020-06-15 14:41 ` Stefan Monnier
2020-06-15 12:21 ` Sergey Organov
2020-06-15 15:26 ` Gregory Heytings
2020-06-15 15:31 ` Perry Smith
2020-06-13 18:10 ` Dan Hitt
2020-06-13 18:41 ` Jakub Jankiewicz [this message]
2020-06-13 18:41 ` Eli Zaretskii
2020-06-13 19:22 ` Gregory Heytings
2020-06-13 19:45 ` Perry Smith
2020-06-13 20:42 ` Gregory Heytings
2020-06-14 5:29 ` Arthur Miller
2020-06-14 7:12 ` Gregory Heytings
2020-06-14 7:45 ` Arthur Miller
2020-06-14 20:14 ` Gregory Heytings
2020-06-15 6:58 ` Sv: " arthur miller
2020-06-13 19:31 ` Stefan Monnier
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.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200613204121.44ed6dab@jcubic \
--to=jcubic@onet.pl \
--cc=dan.hitt@gmail.com \
--cc=ghe@sdf.org \
--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.
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).