1

Is there a way to make buffer-local overrides to exec-path (whose value is normally initialized with the PATH environment variable)?

I tried (make-variable-buffer-local 'exec-path) and local overrides seem to work fine after that, but are there any harmful side effects? In any case, this is non-standard, so is there an officially blessed way to do it?

One reason for a buffer-local path would be to use project-specific versions of tools in Node.js and other projects.

2
  • 2
    setq-local would have even less impact since it really only effects the value of exec-path in the current buffer. The other buffers still share the same value. With make-variable-buffer-local the variable becomes buffer local in all buffers. That could break things. Especially if you do something like that in the early initialization phase. For an instance a package could add the directory path of an external program via (setq exec-path (cons ... exec-path)) even if that is not advisable. That path would only be added in the buffer where load-package run.
    – Tobias
    Commented Jan 5, 2019 at 14:57
  • The normal approach would be to let-bind the value you wanted around the call to the function which needed it.
    – phils
    Commented Apr 5, 2020 at 7:40

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.