A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/purcell/inheritenv below:

purcell/inheritenv: Make emacs temp buffers inherit buffer-local environment variables

Make Emacs temp buffers inherit buffer-local environment variables

Environment variables in Emacs can be set buffer-locally, like many Emacs preferences, and this allows users to have different buffer-local paths for executables in different projects, specified by a .dir-locals.el file or via a direnv integration like envrc.

However, there's a fairly common pitfall when Emacs libraries run background processes on behalf of a user: many such libraries run processes in temporary buffers that do not inherit the calling buffer's environment if it is set buffer-locally. This can result in executables not being found, or the wrong versions of executables being picked up.

An example is the Emacs built-in command shell-command-to-string. Whatever buffer-local process-environment (or exec-path) the user has set, that command will always use the Emacs-wide default. This is specified behaviour, but not expected or helpful.

inheritenv provides a couple of tools for dealing with this issue:

  1. Library authors can wrap code that plans to execute processes in temporary buffers with the inheritenv macro.
  2. Users can modify commands like shell-command-to-string using the inheritenv-add-advice macro.

Ensure inheritenv.el is in a directory on your load-path, and add the following to your ~/.emacs or ~/.emacs.d/init.el:

If you're an Emacs 24 user or you have a recent version of package.el you can install inheritenv from the MELPA repository. The version of inheritenv there will always be up-to-date.

Author: Steve Purcell

Homepage: https://github.com/purcell/inheritenv

💝 Support this project and my other Open Source work

💼 LinkedIn profile

✍ sanityinc.com


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4