2012年1月5日

eshell の PATH と wget がよく分からない・・・。

先日のつづき。

@rubikitch さんメルマガ(サンプル版)の設定の手順でちょっとできなかったのでメモ

Emacsの鬼るびきちのココだけの話
http://www.mag2.com/m/0001373131.html

auto-install をインストールし、init.el を編集して起動すると

-------------------------------------------------------------------------------------
Warning (initialization): An error occurred while loading `c:/home/.emacs.d/init.el':

File error: Searching for program, no such file or directory, wget

To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.
-------------------------------------------------------------------------------------

といわれる。

wget が無いからだよねってことで、

http://users.ugent.be/~bpuype/wget/

から拾ってきた。wget って、64bit版は無いんかなぁ?

/usr/local/bin/

に格納して、init.el に以下を追記。

------------------------------------------
;; 実行パスの追加
(add-to-list 'exec-path "/usr/local/bin")
------------------------------------------

これで正常に起動するようにはなった(先のエラーは無くなった)。

けど、試しに、eshell で wget を打つと

-----------------------------------------
Welcome to the Emacs shell

c:/emacs-23.3/bin $ wget
wget: command not found
c:/emacs-23.3/bin $ which wget
which: no wget in (C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Dell\Dell Data Protection\Access\Advanced\Wave\Gemalto\Access Client\v5\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Git\cmd;c:\w32tex\bin)

-----------------------------------------

あれー、なんでかなぁ、PATH しか見てない。

eshell は eshell-path-env を見ているからとのことで、init.el に

------------------------------------------
;; eshell 用のものを追加
(setq eshell-path-env (concat "/usr/local/bin:" (getenv "PATH")))
------------------------------------------

を追加したけど、上記と同じ・・・なんでー?

仕方ないので、環境変数の PATH に

c:\usr\local\bin

を追加して、以下は削除。なんだかなー。

------------------------------------------
;; 実行パスの追加
(add-to-list 'exec-path "/usr/local/bin")
;; eshell 用のものを追加
(setq eshell-path-env (concat "/usr/local/bin:" (getenv "PATH")))
------------------------------------------

気を取り直して、C-x C-f ~/.wgetrc で

http_proxy=<address>:<port>

を設定して、保存。

M-x eshell で

-------------------------------------------------------------------------------------
Welcome to the Emacs shell

c:/emacs-23.3/bin $ cd ~
~ $ rm -rf ~/.emacs.d/*
~ $ mkdir -p ~/.emacs.d/auto-install
~ $ cd ~/.emacs.d/auto-install/
~/.emacs.d/auto-install $  wget http://www.emacswiki.org/emacs/download/auto-install.el
--2012-01-05 10:37:20--  http://www.emacswiki.org/emacs/download/auto-install.el
Connecting to <address>:<port>... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: `auto-install.el'

     0K .......... .......... .......... .......... .......... 1.27M
    50K ......                                                 13.7M=0.04s

2012-01-05 10:37:20 (1.43 MB/s) - `auto-install.el' saved [58346]
-------------------------------------------------------------------------------------

M-x byte-compile-file
~/.emacs.d/auto-install/auto-install.el

でバイトコンパイル。

init.el は以下のように記載

-------------------------------------------------------------------------------------
(add-to-list 'load-path "~/.emacs.d/auto-install/")
(require 'auto-install)
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
-------------------------------------------------------------------------------------

続いて、他のもインストールしてしまう。

M-x install-elisp-from-emacswiki open-junk-file.el C-c C-c
M-x install-elisp-from-emacswiki lispxmp.el C-c C-c
M-x install-elisp http://mumble.net/~campbell/emacs/paredit.el C-c C-c
M-x install-elisp-from-emacswiki auto-async-byte-compile.el C-c C-c

で、きれいに入った。最終的な init.el は以下の通り。

-------------------------------------------------------------------------------------

(custom-set-variables
  ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(show-paren-mode t))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(default ((t (:inherit nil :stipple nil :background "SystemWindow" :foreground "SystemWindowText" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width normal :foundry "outline" :family "メイリオ")))))

;;; auto-install.elの設定
;; ~/.emacs.d/auto-install以下にauto-install.elでダウンロードされたファイルを保存する。
(add-to-list 'load-path "~/.emacs.d/auto-install/")
(require 'auto-install)

 ;; EmacsWikiのページ名データベースを得る(補完用)。
(auto-install-update-emacswiki-package-name t)
;; auto-install.elがinstall-elisp.el互換になる。
(auto-install-compatibility-setup)
; ediffが新しいフレームを作らないようにする
(setq ediff-window-setup-function 'ediff-setup-windows-plain)

;;;試行錯誤用ファイルを開くための設定
(require 'open-junk-file)
;; C-x C-zで試行錯誤ファイルを開く
(global-set-key (kbd "C-x C-z") 'open-junk-file)
;;;式の評価結果を注釈するための設定
(require 'lispxmp)
;; emacs-lisp-modeでC-c C-dを押すと注釈される
;; C-c C-dで「; =>」のついた行の式の値を注釈する。
(define-key emacs-lisp-mode-map (kbd "C-c C-d") 'lispxmp)

;;;括弧の対応を保持して編集する設定
(require 'paredit)
;; emacs-lisp-mode、lisp-interaction-mode(*scratch*)、
;; lisp-mode、ielm-mode(シェル的elisp実行環境)で
;; paredit.elを有効にする。
(add-hook 'emacs-lisp-mode-hook 'enable-paredit-mode)
(add-hook 'lisp-interaction-mode-hook 'enable-paredit-mode)
(add-hook 'lisp-mode-hook 'enable-paredit-mode)
(add-hook 'ielm-mode-hook 'enable-paredit-mode)
;; ファイルが更新されたら自動でバイトコンパイルをする。
(require 'auto-async-byte-compile)
;;自動バイトコンパイルを無効にするファイル名の正規表現
(setq auto-async-byte-compile-exclude-files-regexp "/junk/")
;; emacs-lisp-modeとlisp-interaction-modeで、
;; エコーエリアに関数名、変数名のドキュメントを
;; 表示する。(eldoc)
(add-hook 'emacs-lisp-mode-hook 'enable-auto-async-byte-compile-mode)
(add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
(add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode)
(add-hook 'ielm-mode-hook 'turn-on-eldoc-mode)
(setq eldoc-idle-delay 0.2) ;すぐに表示したい
(setq eldoc-minor-mode-string "") ;モードラインにElDocと表示しない
;;釣り合いのとれる括弧をハイライトする
(show-paren-mode 1)
;;改行と同時にインデントも行う
(global-set-key "\C-m" 'newline-and-indent)
;; find-functionをキー割り当てする
;; ?C-x Vをfind-variableに割り当て。
;; ?変数定義を開く。
;; ?C-x Kをfind-function-on-keyに割り当て。
;; ?キーに割り当てられているコマンドの定義を開く。
(find-function-setup-keys)
-------------------------------------------------------------------------------------

0 件のコメント:

コメントを投稿