From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.help Subject: RE: Emulating Scrivener's binder feature Date: Mon, 1 Apr 2019 08:06:53 -0700 (PDT) Message-ID: <530ddfc1-e38e-4e7b-864d-e6cc1d1ccb76@default> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="36504"; mail-complaints-to="usenet@blaine.gmane.org" To: "Paul W. Rankin" , help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Apr 01 17:07:33 2019 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hAyX5-0009KI-5m for geh-help-gnu-emacs@m.gmane.org; Mon, 01 Apr 2019 17:07:31 +0200 Original-Received: from localhost ([127.0.0.1]:48789 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hAyX4-0002fJ-43 for geh-help-gnu-emacs@m.gmane.org; Mon, 01 Apr 2019 11:07:30 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60036) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hAyWk-0002cw-Tb for help-gnu-emacs@gnu.org; Mon, 01 Apr 2019 11:07:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hAyWf-0002OO-9M for help-gnu-emacs@gnu.org; Mon, 01 Apr 2019 11:07:07 -0400 Original-Received: from userp2120.oracle.com ([156.151.31.85]:48404) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hAyWb-0002MG-Kq for help-gnu-emacs@gnu.org; Mon, 01 Apr 2019 11:07:03 -0400 Original-Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x31F3m2c022821; Mon, 1 Apr 2019 15:07:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=81ZVweIbC8bySTpwVLTaxzB9lsnNaqrr60AJRdE3G1I=; b=yaxtiNrQzn43uQpk1gxymOyacoDcdxJQIARyPyj6qvFDRXvzSBVo3vX4WDhXeKAIFHVi eoa9Y2hoWd8T2VXSeAE/OtbPM1bSDMGny1CPapAGZfensVOAA7CSauqmgE2kyiC4xqBn eLy8FwHEnjQWqKFhjl+KkB+ZaPrXf+s/VIKBz5K7PiQiJ91q2tp+tU68BNZZXkrb4gSH KRJzyJ2OK+nrw/GQGfQZWXfCsxbQL3GsBcEYWUzARHySrZsOGv/l122wsFDj8ctaYRpN vif7lR1QQsqEq4ODM/wTfwa78PwKLLNN07ZPnFH4zTlPnfcfCCRKLPb5YIURcNM6Kmod yA== Original-Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2120.oracle.com with ESMTP id 2rj13pyha0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 01 Apr 2019 15:06:59 +0000 Original-Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id x31F6sWB005869 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Apr 2019 15:06:54 GMT Original-Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x31F6rUT028190; Mon, 1 Apr 2019 15:06:54 GMT In-Reply-To: X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4822.0 (x86)] X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9214 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904010102 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 156.151.31.85 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:119812 Archived-At: > I've started a new Emacs package to try and emulate the behaviour of > Scrivener's > binder feature. >=20 > A buffer in a side window would display the current project not unlike > dired-sidebar -- each file in the project occupying a single line. The > ordering > of these files should be arbitrary (i.e. the user may reorder the files) = and > this project structure should be persistent across sessions. Global > keybindings > should allow navigation from a file in the current project to the > next/previous > file in this structure. The user should (eventually) be able to mark a > selection > of files and concatenate/export these into a master output... > Before I go to far, Please _do_ go far into this. Such effort is never wasted, IMO. > Question 1: Has someone already made something like this? > I don't want to reinvent the wheel... There is not only one wheel. Wheels often need reinventing. FYI, here is something similar, but it does not correspond to everything you describe: 1. You can create a Dired buffer that has any combination of files and directories that you like. This feature is not very well known, but it's always been there. If you use library Dired+ then it's a bit easier to create such buffers interactively (and you can interactively create Dired buffers as unions etc. of other Dired buffers, and add arbitrary files and dirs to an existing Dired buffer). However, it is not possible (until someone implements it!) to sort such a Dired buffer with ad hoc entries. 2. If you use library Bookmark+ then you can bookmark Dired buffers, including those just described (i.e., with ad hoc entries from anywhere). Jumping to such a bookmark restores the Dired buffer, including all of its markings omitted files, `ls' switches, inserted subdirs, etc. This gives you a persistent way to record and restore the files and dirs of a project, for example. You can also create different bookmark display lists or different bookmark files, so you can list only the bookmarks for a given project or have different views of a project or parts of a project. You can also bookmark Emacs desktops, and quickly switch among them, to flip between different projects or different views of a project. You can also bookmark a Dired tree. This gives you a set of Dired bookmarks that represent a hierarchy and are opened together. Bookmark+ also lets you tag bookmarks (and so bookmarked files and directories) with arbitrary strings or even Lisp key-value pairs. This gives you another way to access/view/define sets of bookmarks (thus files & dirs). https://www.emacswiki.org/emacs/DiredPlus (search for "bookmark", for example) https://www.emacswiki.org/emacs/BookmarkPlus (search for "dired", for example)