Цифровой садик - приветственная

Цифровой садик - приветственная | Полный список всего, что тут есть | RSS | Подписаться через follow.it


Binder - текстовые проекты в emacs


Текстег собран из инфы в туториале и прочих описаний. Здесь нет про требования и установку. В мельпе есть.

Не уверена, насколько такая штука нужна в принципе. Орг-мод позволяет работать над большим проектом в одном файле. Заметки - комментарии или drawer-ы. Теги есть (https://orgmode.org/guide/Tags.html), может, немного слишком замороченные. Бонусом удобный экспорт в уйму форматов. С другой стороны, тут может очень ролять субъективное удобство и впечатление.

Binder is global minor mode to facilitate working on a writing project in multiple files. It is heavily inspired by the binder feature in the macOS writing app Scrivener (https://www.literatureandlatte.com/scrivener/).

The rationale behind working this way is to split a large writing project into smaller pieces.


Primarily, Binder provides a global minor mode binder-mode. This allows working with files in the current binder-project-directory. Data concerning these files is saved in a .binder.el file in the project directory.

A project can be thought of an ordered list of files with associated notes and tags.

You can only work on one project at a time in one Emacs session. Most management of a project will happen via the sidebar.


At the most basic level, you can navigate back and forth through the files in a project:

  • binder-next (C-c ]) visits the next file in the project
  • binder-previous (C-c [) visits the previous

Calling these commands activates a transient map so that each command can be repeated without the prefix key.


You'll mostly interact with the project structure via the sidebar.

  • binder-toggle-sidebar (C-c ') toggles the visibility of the binder sidebar
  • binder-reveal-in-sidebar (C-c ;) finds the current file in the sidebar

Each project item is a file reference relative to the project directory.

Project items are displayed in a linear ordered list. Calling binder-sidebar-find-file (RET) or binder-sidebar-find-file-other-window (o) will visit the corresponding file.

Each item in the sidebar displays the following information:

  1. * denotes that this item has some notes (see Notes below), or…
  2. ? denotes that the item's corresponding file cannot be found
  3. either the file relative to the project directory, or an arbitrary display name
  4. #tag1 #tag2 … arbitrary item tags (see Tags below)

An item's display name can be changed with binder-sidebar-rename (r). If a file cannot be found, relocate with binder-sidebar-relocate (R).

You can move about in the sidebar by typing n and p, < and > and visit a file by simply typing RET (binder-sidebar-find-file). Jump to the current item with j. You can quickly resize the sidebar with { and }.

To add an existing file, call binder-sidebar-add-file (a) or add all files in directory with binder-sidebar-add-all-files (A).

Add a new file with binder-sidebar-new-file (M-RET). This prompts for a file-name and adds this (possibly non-existent) file to the project after the current file's index. If no file-name extension is provided, use binder-default-file-extension.

> Hint: you can use an alternate default file extension for different projects by setting a directory local variable.

Files can also be added to a project from outside the sidebar with binder-add-file (C-c :).

Items can be reordered with binder-sidebar-shift-up (M-p | M-up) and binder-sidebar-shift-down (M-n | M-down).

Remove items with binder-sidebar-remove (d) – this does not delete the files, only removes them from the project, but it does delete the corresponding notes and tags.

Hide item file extensions by setting the binder-sidebar-hide-file-extensions option. This can be toggled with binder-sidebar-toggle-file-extensions (E).

The sidebar can be resized with binder-sidebar-shrink-window ({) and binder-sidebar-enlarge-window (}). The window size is changed by the number of columns specified in option binder-sidebar-resize-window-step.

You can customize how the sidebar window is displayed by setting binder-sidebar-display-alist option.

Binder will automatically write its current project file after a certain number of changes, but you can manually save a project by typing s.

You can navigate through project items forward and backward with C-c ] and C-c [, which means Emacs will visit each file in the project list in succession.

Try typing C-c [ to go back to a previous file. You don't need to prefix C-c each time, so you can type e.g. C-c [ [ ] ] ] to repeatedly navigate backward/forward.

The highlight in the sidebar lets you know where you are so you don't get lost.


Each item can have notes, which are stored in the project file.

To open the notes buffer from the sidebar, call either binder-sidebar-open-notes (z) to open and select the notes window, or binder-sidebar-toggle-notes (i) to toggle the window without selecting it.

To open a project file's notes from outside the sidebar, call binder-toggle-notes (C-c ").

You need to call either binder-notes-save (C-x C-s) or binder-notes-save-and-quit-window (C-c C-c) to save notes to the project file.

Calling quit-window (C-c C-q | C-c C-k) or binder-toggle-sidebar does not save notes.

You can embiggen the notes window, to pop it out from the sidebar and edit like a regular buffer window, with binder-notes-expand-window (C-c C-l). This command works as a toggle.

You can customize how the notes window is displayed by setting binder-notes-display-alist option.


Tags can help organize a project. An item can have any number of tags.

Add a tag to an item with binder-sidebar-add-tag (t). Remove a tag from an item with binder-sidebar-remove-tag (T). You can tag/untag multiple items at once by using marks (see Marking below).

Items in the sidebar can be narrowed to only show items with a certain tag with binder-sidebar-narrow-by-tag (/) and/or only show items without a certain tag with binder-sidebar-exclude-by-tag (\). Each of these commands can be called multiple times with additional tags.

When the sidebar items are filtered, navigating backward/forward only considers those items.

Clear the sidebar filters with binder-sidebar-clear-filters (|).


Multiple items can be marked to add tags, toggle include state or delete. Call binder-sidebar-mark (m) to mark an item or binder-sidebar-unmark (u) to unmark an item.

To unmark all sidebar items, call binder-sidebar-unmark-all (U).


Binder caches project information to avoid contious reading and writing to disk. However this means errors may occur if a project is moved on disk while project information is cached. If you plan on moving a projects on disk it's best to deactivate binder-mode first.

Если у вас есть мысли, комментарии, предложения или отклики по поводу этой страницы или этого цифрового сада в целом, напишите мне сообщение на agnessa@agnessa.pp.ru. Мне ооочень интересно!


An IndieWeb Webring 🕸💍