NonGNU-devel ELPA - with-editor

with-editor Atom Feed

Description
Use the Emacsclient as $EDITOR
Latest
with-editor-3.4.3.0.20241201.141907.tar (.sig), 2024-Dec-01, 120 KiB
Maintainer
Jonas Bernoulli <emacs.with-editor@jonas.bernoulli.dev>
Website
https://github.com/magit/with-editor
Browse ELPA's repository
CGit or Gitweb
Badge
Manual
with-editor

To install this package from Emacs, use package-install or list-packages.

Full description

1. With-Editor

This library makes it possible to reliably use the Emacsclient as the $EDITOR of child processes. It makes sure that they know how to call home. For remote processes a substitute is provided, which communicates with Emacs on standard output/input instead of using a socket as the Emacsclient does.

It provides the commands with-editor-async-shell-command and with-editor-shell-command, which are intended as replacements for async-shell-command and shell-command. They automatically export $EDITOR making sure the executed command uses the current Emacs instance as "the editor". With a prefix argument these commands prompt for an alternative environment variable such as $GIT_EDITOR. To always use these variants add this to your init file:

(keymap-global-set "<remap> <async-shell-command>"
		   #'with-editor-async-shell-command)
(keymap-global-set "<remap> <shell-command>"
		   #'with-editor-shell-command)

Alternatively use the global shell-command-with-editor-mode, which always sets $EDITOR for all Emacs commands which ultimately use shell-command to asynchronously run some shell command.

The command with-editor-export-editor exports $EDITOR or another such environment variable in shell-mode, eshell-mode, term-mode and vterm-mode buffers. Use this Emacs command before executing a shell command which needs the editor set, or always arrange for the current Emacs instance to be used as editor by adding it to the appropriate mode hooks:

(add-hook 'shell-mode-hook  'with-editor-export-editor)
(add-hook 'eshell-mode-hook 'with-editor-export-editor)
(add-hook 'term-exec-hook   'with-editor-export-editor)
(add-hook 'vterm-mode-hook  'with-editor-export-editor)

Some variants of this function exist, these two forms are equivalent:

(add-hook 'shell-mode-hook
	  (apply-partially 'with-editor-export-editor "GIT_EDITOR"))
(add-hook 'shell-mode-hook 'with-editor-export-git-editor)

This library can also be used by other packages which need to use the current Emacs instance as editor. In fact this library was written for Magit and its git-commit-mode and git-rebase-mode. Consult git-rebase.el and the related code in magit-sequence.el for a simple example.



Compile Manual NonGNU ELPA MELPA Stable MELPA

Old versions

with-editor-3.4.2.0.20241123.213728.tar.lz2024-Nov-2421.3 KiB
with-editor-3.4.2.0.20241120.61145.tar.lz2024-Nov-2021.3 KiB
with-editor-3.4.2.0.20240831.223035.tar.lz2024-Sep-0121.3 KiB
with-editor-3.4.1.0.20240830.222853.tar.lz2024-Aug-3121.2 KiB
with-editor-3.4.1.0.20240816.195813.tar.lz2024-Aug-1620.9 KiB
with-editor-3.4.0.0.20240805.143955.tar.lz2024-Aug-0520.8 KiB
with-editor-3.3.4.0.20240713.193157.tar.lz2024-Jul-1320.7 KiB
with-editor-3.2.0.50snapshot0.20230412.105315.tar.lz2023-Apr-1220.7 KiB
with-editor-3.1.1.0.20220126.133910.tar.lz2022-Jan-2619.3 KiB
with-editor-3.0.5.0.20220101.131650.tar.lz2022-Jan-0129.6 KiB

News

# -*- mode: org -*-
* v3.4.3    2024-12-01

- Added new variable ~with-editor-emacsclient-program-suffixes~.  #132

* v3.4.2    2024-09-01

- Fixed ~shell-command-with-editor-mode~ for remote processes.  #129

- ~with-editor-export-editor~ now waits longer for the terminal to get
  ready.  #130

- Updated tooling.