読者です 読者をやめる 読者になる 読者になる

Thanks Driven Life

日々是感謝

emacs で環境変数をなんとかかんとか

今のところ特に書くこともないので、誰か教えてください。

X とか Cocoa の Emacs 起動時、-nw じゃない場合は環境変数が引き継がれず、
特に PATH 系がアレだといろいろ困ったりします。
なので以下のようにしてがんばってます。
もうちょいかっこいいやり方ありそうだけどなー。

(setq darwin-p  (eq system-type 'darwin)
      ns-p      (eq window-system 'ns)
      linux-p   (eq system-type 'gnu/linux))

;;---------------------------------------
;; シェル以外から実行した場合、
;; 環境変数 $PATH が引き継がれないため
;; exec-path と同時にここで設定
;;---------------------------------------
(dolist (dir (list
              (expand-file-name "~/bin")
              (expand-file-name "~/.homebrew/bin")
              (expand-file-name "~/.rvm/bin")
              (expand-file-name "~/.pythonbrew/bin")
              (expand-file-name "~/bin/mew/bin")
              (expand-file-name "~/bin/howm")
              "/usr/local/bin"
              ))
  (when (file-exists-p dir)
    (when (not (member dir exec-path))
      (setq exec-path (append (list dir) exec-path)))
    (setenv "PATH" (concat dir ":" (getenv "PATH")))))

;;----------------------------------------
;; LIBRARY_PATH も同じように
;;----------------------------------------
(let ((libenv (cond (darwin-p "DYLD_FALLBACK_LIBRARY_PATH")
                    (linux-p  "LD_LIBRARY_PATH"))))
  (dolist (dir (list
                (expand-file-name "~/.homebrew/lib")
                "/usr/local/lib"
                ))
    (when (file-exists-p dir)
      (setenv libenv (concat dir ":" (getenv libenv))))))

はてなブログのスーパーpre記法、ハイライトされてない気がする。
まだそこまで対応してないのかな。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    printf("Hello, World!\n");
    return EXIT_SUCCESS;
}

lisp だけかと思ったら c もダメだった。まあそんなもんか。