(wat-aro)

無職から有職者にランクアップしました

ruby: No such file or directory -- xmpfilter (LoadError)

Emacsxmpfilterを使おうとするとこのエラーが出て困っていました。

原因はshellとemacsでパスが違うことだったようです。

まず.bashrcの末尾に以下を追加します。

## create emacs env file
perl -wle \
    'do { print qq/(setenv "$_" "$ENV{$_}")/ if exists $ENV{$_} } for @ARGV' \
    PATH > ~/.emacs.d/shellenv.el

そしてinit.elに以下を記述すれば完成です。

;; load environment value
(load-file (expand-file-name "~/.emacs.d/shellenv.el"))
(dolist (path (reverse (split-string (getenv "PATH") ":")))
  (add-to-list 'exec-path path))

うまく動いてくれてるようです。

a = 1 + 1                       # => 2
p a + 1
# >> 3

[追記] ついでにauto-complete.elをenf-ruby-modeで使う時の設定も

;; auto-complete
(require 'auto-complete)
(require 'auto-complete-config)    ; 必須ではないですが一応
(global-auto-complete-mode t)
(define-key ac-completing-map (kbd "C-n") 'ac-next)      ; M-nで次候補選択
(define-key ac-completing-map (kbd "C-p") 'ac-previous)  ; C-p で前候補選択
(ac-config-default)
(add-to-list 'ac-modes 'enh-ruby-mode)