[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [emacs-humanities] [External] : Re: Emacs "Projects" management?
From: |
Drew Adams |
Subject: |
Re: [emacs-humanities] [External] : Re: Emacs "Projects" management? |
Date: |
Sat, 15 Oct 2022 18:46:46 +0000 |
Coming late to this request...
Another Emacs tool you might find useful in creating
and supporting projects is Emacs bookmarking.
Not that there's any predefined bookmarking feature
for project creation, maintenance, etc. But that a
bookmark is a persistent do-anything object, which
typically records one or more "locations" to access
in one or more ways.
Library Bookmark+ provides a number of bookmarking
features that might be able to help in this regard.
In particular, it gives you several ways to organize
things - things such as the objects you define as
belonging to a "project".
Files and directories can be such things. So can
locations in files. So can sets of files or sets
of such locations. So can such sets plus info about
the objects or the set (e.g. object attributes, set
attributes).
It's up to you to choose how to define/organize a
"project" using such features, depending on what you
want/envision. But none of that is complex, and in
general it requires no use of Elisp.
Some _ways to define sets_ of things using bookmarks:
* Dired buffers (sets of files, their Dired markings,
sort order, visibility, etc.).
Dired listings can include files & directories from
anywhere - any drives, any file systems, anywhere
(remote or local). That is, listings need not be
the result of using `ls' - they can be arbitrary
sets of files and dirs.
* Bookmark files (persistent sets of bookmarks).
Switch among bookmark files to access different
projects or project components. Load components
as you need them.
* Bookmark listings (dynamic views of currently
defined/loaded bookmarks).
* Desktops (persistent workplace configs - frames,
windows, variables,...).
* _Bookmarks_ to each of those sets. E.g., jump to
a bookmark to restore a Dired listing, or to switch
to a different bookmark file, or to load a bookmark
file to add its bookmarks, or to switch to another
bookmark listing (with its markings, sort order
etc.), or to restore/switch to another desktop.
* Bookmark types. Define new types of bookmark,
corresponding to sets of whatever, plus associated
properties/behavior you define.
* Bookmark tags. You can tag any bookmark with any
number of arbitrary labels: strings by default,
but can even be (string . Lisp-value) pairs - any
Lisp value (but only readable source-Lisp values
can be used persistently, of course).
Different projects can have different tags for the
same or different sets of files and dirs (or other
objects).
Bookmarks with the same set of tags (including any
subset) form a set. You can act on the bookmarks
that have any set of tags in many ways. In a
bookmark list you can sort, show/hide, or mark
bookmarks based on their tags - then act on those
so marked.
* You can tag files and directories, by creating
"autofile" bookmarks. They give you the effect of
using files/directories themselves as bookmarks.
An autofile bookmark has the same name as its
targeted file/directory.
* A bookmarks can have an associated annotation:
arbitrary info you attach to it. An annotation is
part of the bookmark it annotates, but it can also
redirect to a separate annotation file, URL, or to
another bookmark.
(A bookmark's annotation and its tags each provide
it with arbitrary metadata, in different ways, for
different uses.)
You can use bookmark tags to organize files (or
whatever), regardless of whether you ever use the
bookmarks to visit them. That is, tags are unrelated
to the fact that bookmarks record locations and are
useful for navigating.
You can define tag names according to a convention
that helps define your project. One possibility is
to use tags that define a simple tree structure, e.g.:
vacation/
vacation/2021/
vacation/2021/winter/
vacation/2021/winter/photos/
vacation/2021/summer/
vacation/2021/summer/photos/
vacation/2022/
...
You can combine separate trees using multiple tags,
e.g., a tag "vacation/2022/winter/" and a tag "work/projects/2022/alpha/".
The organization (project-defining) possibilities
are endless. But it's up to you to set up whatever
kind of project definition/organization you want.
Bookmarks just offer some flexible, persistent aids
to doing that.
HTH.
___
https://www.emacswiki.org/emacs/BookmarkPlus
(E.g., search for "project" on that page.)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [emacs-humanities] [External] : Re: Emacs "Projects" management?,
Drew Adams <=