diff options
Diffstat (limited to 'elpa/with-editor-3.4.3/README.org')
-rw-r--r-- | elpa/with-editor-3.4.3/README.org | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/elpa/with-editor-3.4.3/README.org b/elpa/with-editor-3.4.3/README.org new file mode 100644 index 0000000..aea30cc --- /dev/null +++ b/elpa/with-editor-3.4.3/README.org @@ -0,0 +1,63 @@ +* 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: + +#+begin_src emacs-lisp + (keymap-global-set "<remap> <async-shell-command>" + #'with-editor-async-shell-command) + (keymap-global-set "<remap> <shell-command>" + #'with-editor-shell-command) +#+end_src + +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: + +#+begin_src emacs-lisp + (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) +#+end_src + +Some variants of this function exist, these two forms are +equivalent: + +#+begin_src emacs-lisp + (add-hook 'shell-mode-hook + (apply-partially 'with-editor-export-editor "GIT_EDITOR")) + (add-hook 'shell-mode-hook 'with-editor-export-git-editor) +#+end_src + +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. + +#+html: <br><br> +#+html: <a href="https://github.com/magit/with-editor/actions/workflows/compile.yml"><img alt="Compile" src="https://github.com/magit/with-editor/actions/workflows/compile.yml/badge.svg"/></a> +#+html: <a href="https://github.com/magit/with-editor/actions/workflows/manual.yml"><img alt="Manual" src="https://github.com/magit/with-editor/actions/workflows/manual.yml/badge.svg"/></a> +#+html: <a href="https://elpa.nongnu.org/nongnu/with-editor.html"><img alt="NonGNU ELPA" src="https://emacsair.me/assets/badges/nongnu-elpa.svg"/></a> +#+html: <a href="https://stable.melpa.org/#/with-editor"><img alt="MELPA Stable" src="https://stable.melpa.org/packages/with-editor-badge.svg"/></a> +#+html: <a href="https://melpa.org/#/with-editor"><img alt="MELPA" src="https://melpa.org/packages/with-editor-badge.svg"/></a> |