2011年9月9日

install gnupack 7.00 on win32


-*- mode: org; coding: cp932-dos -*-

* はじめに

gnupack 7.00 が出たので、Windows XP 32bit に入れる

* システムの概要

- OS 名 :: Microsoft Windows XP Professional
- バージョン :: 5.1.2600 Service Pack 3 ビルド 2600
- OS 製造元 ::  Microsoft Corporation
- システム名 :: <machine-name>
- システム製造元 ::  Dell Inc.
- システムモデル ::  OptiPlex 780
- システムの種類 :: X86-ベース PC
- プロセッサ :: x86 Family 6 Model 23 Stepping 10 GenuineIntel ~3158 Mhz
- BIOS バージョン/ 日付 :: Dell Inc. A08, 2011/01/21
- SMBIOS バージョン :: 2.5
- Windows ディレクトリ :: C:\WINDOWS
- システム ディレクトリ :: C:\WINDOWS\system32
- ブート デバイス ::  \Device\HarddiskVolume1
- ロケール :: 日本
- ハードウェア アブストラクション レイヤ  バージョン = "5.1.2600.5512 (xpsp.080413-2111)"
- ユーザー名 :: <domain>\<username>
- タイム ゾーン :: 東京 (標準時)
- 合計物理メモリ :: 4,096.00 MB
- 利用可能な物理メモリ :: 2.51 GB
- 合計仮想メモリ :: 2.00 GB
- 利用可能な仮想メモリ :: 1.95 GB
- ページ ファイルの空き容量 :: 5.30 GB
- ページ ファイル :: C:\pagefile.sys

* インストール手順および設定

gnupack 本体、gdi++、bashの設定、emacs の設定をする。vim の設定はしない。使わないから。

** gnupack

まずは本体のインストール

*** install

1. gnupack gnupack_devel-7.00.exe を以下からダウンロードする

http://sourceforge.jp/projects/gnupack/releases/?package_id=10360

2. [gnupack_devel-7.00.exe] を実行

3. [解凍先] を [C:\] にして、 [実行] をクリック

4. 以下の exe を起動して、それぞれ起動確認

C:\gnupack_devel-7.02\bash.exe
C:\gnupack_devel-7.02\emacs.exe
C:\gnupack_devel-7.02\gvim.exe

** gdi++

今回は gdi++ を入れよう

*** install

1. gdi0789 実験版 を以下のバイナリよりダウンロードする
http://www18.atwiki.jp/gdiplus2/pages/15.html

2. gdi0869.7z (freetype.dll) をダウンロードする

http://www18.atwiki.jp/gdiplus2/pages/35.html

3. lha-1.14i-ac20050924p1.tar.gz (LHa for UNIX) をダウンロードする
http://lha.sourceforge.jp/

3. 手順1.2 を解凍

M-x shell

tar zxvf lha-1.14i-ac20050924p1.tar.gz
cd lha-1.14i-ac2005092p1/
./configure CFLAGS="-isystem /usr/local/include"
make
make install

apt-cyg install p7zip

lha gdi0789.lzh
7za x gdi0869.7z
mkdir -p c:/gnupack_devel-7.00/app/gdi++
mv * c:/gnupack_devel-7.00/app/gdi++/
exit
C-x k [RET]

4. gdi++.ini の編集

C-x C-f C:\gnupack_devel-7.00\app\gdi++\gdi++.ini

以下のように編集

=== c:/gnupack_devel-7.00/app/gdi++/gdi++.ini.orig    2011-09-09 11:58:22.810927800 +0900
+++ c:/gnupack_devel-7.00/app/gdi++/gdi++.ini    2011-09-09 11:58:02.482542600 +0900
===============
=== 1,7 ====
  [General]
! AlternativeFile=.\ini\3.ini
!
! [GdiTray]
! MultiINISelector=1
! RedrawDelay=50
! CoolMenu=1
--- 1,15 ----
  [General]
!   HookChildProcesses=1
!   HintingMode=2
!   AntiAliasMode=2
!   TextTuning=0
!   TextTuningR=1
!   TextTuningG=1
!   TextTuningB=1
!   NormalWeight=40
!   BoldWeight=32
!   ItalicSlant=32
!   EnableKerning=0
!   MaxHeight=128
!   LcdFilter=2
!   LoadOnDemand=1

** config.ini の 設定
1. C-x C-f で、 c:\gnupack_devel-6.02\config.ini を開く

2. 以下のように修正

=== c:/gnupack_devel-7.00/config.ini.orig    2011-09-09 14:19:28.560237500 +0900
--- c:/gnupack_devel-7.00/config.ini    2011-09-09 14:21:36.060237500 +0900
===============
=== 25,36 ====
      GS_DLL         = %INST_DIR%\app\gs\bin\gsdll32.dll
      PATH           = %PATH%;%INST_DIR%\app\gs\bin;%INST_DIR%\app\gs\lib
 
  [UnSetEnv]
      _font_         =
      _local_        =
 
  [App]
!    ;Gdi            = %INST_DIR%\app\gdi++\gdi++.exe
      Bash           = %CYGWIN_DIR%\bin\bash.exe
      Shell          = %CYGWIN_DIR%\bin\bash.exe
      Mintty         = %CYGWIN_DIR%\bin\mintty.exe
--- 25,45 ----
      GS_DLL         = %INST_DIR%\app\gs\bin\gsdll32.dll
      PATH           = %PATH%;%INST_DIR%\app\gs\bin;%INST_DIR%\app\gs\lib
 
+     http_proxy       = http://<usrname>:<passwd>@<address>:<port>/
+     PATH           = %EMACS_DIR%\bin;%INST_DIR%\app\vim;%INST_DIR%\app\script
+     PATH           = %PATH%;%INST_DIR%\app\mingw\tdm\bin;%_local_%\bin;%CYGWIN_DIR%\bin
+     PATH           = %PATH%;%windir%\system32;%windir%;%windir%\system32\Wbem
+     PATH           = %PATH%;C:\Program Files\ANSYS Inc\v130\ansys\bin\intel
+     PATH           = %PATH%;C:\usr\local\share\InnoSetup5
+     PATH       = %PATH%;C:\w32tex\bin;C:\gs\gs7.07\bin;C:\gs\gs7.07\lib
+
+
  [UnSetEnv]
      _font_         =
      _local_        =
 
  [App]
!     Gdi            = %INST_DIR%\app\gdi++\gdi++.exe
      Bash           = %CYGWIN_DIR%\bin\bash.exe
      Shell          = %CYGWIN_DIR%\bin\bash.exe
      Mintty         = %CYGWIN_DIR%\bin\mintty.exe
===============
=== 58,64 ====
  [Emacs]
      foreground     = white
      background     = black
!     geometry       = 91x31+70+28
      fontName       = %_font_%
      fontSize       = 12
 
--- 67,73 ----
  [Emacs]
      foreground     = white
      background     = black
!     geometry       = 120x60+70+25
      fontName       = %_font_%
      fontSize       = 12

** wget の proxy 設定

http_proxy の設定で、<username>と<password>を設定していると、 wget が
正常に動作しない模様。 wget の設定もやっておく。

1. emacs を起動

2. C-x C-f で ~/.wgetrc を作成し、以下を記載

   http_proxy=<proxyadress>:<port>

** mintty
bash 起動して設定したもの
*** w3m

apt-cyg install w3m

*** ruby

bash を起動して、 apt-cyg install ruby subversion-ruby とするだけで、
関連のものも自動でインストールされる(サブバージョンはバージョン管
理のもの)。

念のため

ruby -v

*** python

    1. パッケージ群のインストール

       過去にパッケージ不足とかでできなかったことがあるため、

       apt-cyg find python

       で出てきたものをすべてインストールする。内容は良く分からない。

       apt-cyg install libboost_python1.43 postgresql-plpython python python-brlapi python-cairo python-crypto python-doc python-feedparser python-gamin python-gdata python-gobject2.0 python-gobject2.0-devel python-gsf python-gtk2.0 python-gtk2.0-demo python-gtk2.0-devel python-lcms python-libproxy python-libxml2 python-libxslt python-ming python-numpy python-paramiko python-pygtk python-pyrex python-test python-tkinter python-xdg subversion-python

    2. easy_install, setuptools, pyflakes のインストール

       setuptools とかいうのが良く出てくるのと、 pyflkes (チェッカ)を使
       いたいので、 bash で以下のようにインストール

       wget http://peak.telecommunity.com/dist/ez_setup.py
       python ez_setup.py
       wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086
       sh setuptools-0.6c11-py2.6.egg
       easy_install pyflakes

     3. 確認

        python と pyflakes の確認を行う。

        ~/tmp/sample.py

        を

        print "hoge"

        とつくって、 bash で

        python sample.py

        として、 hoge の 表示を確認し、さらに、 sample.py を

        print "hello

        として、 bash で

        sample.py:1: EOL while scanning string literal
        print "hoge
                   ^

        といってくれれば成功

     3. pyflakes のバッチファイルを作成

        ウィンドウズで使うため(というか、 emacs で使うため)に、以下のバッ
        チファイルを作成しておく。

        1) emacs を起動

        2) C-x C-f で pyflakes.bat を以下に作成

          c:/gnupack_devel-6.02/app/cygwin/cygwin/bin

        3) 以下のように記載し、 C-x RET f shift-jis-dos として、 C-x C-s

          @echo off
          c:\gnupack_devel-7.00\app\cygwin\cygwin\bin\python /usr/bin/pyflakes %*

      4. pyflakes.bat の確認

        cmd を起動して

        c:\gnupack_devel-7.00\app\cygwin\cygwin\bin\pyflakes sample.py

        をして、指摘してくれれば OK。なんか最初やったら、warning 出た気がする・・・。


*** emacs-w3m
**** ファイルの入手について

     CVS は HTTP Port でないため、 Proxy CVS 用に Proxy の設定をしなけれ
     ばならないが、よく分からない。

     HTTP Proxy だけ与えられているので、トンネルする方法もあるようだが、
     そんなことはできるだけやりたくない。

     しかたないので、 proxy が不要な環境で、 emacs-w3m のファイルをとって
     くる。 bash での手順は以下のとおり。

     apt-cyg install cvs autoconf
     wget http://emacs-w3m.namazu.org/emacs-w3m-1.4.4.tar.gz
     cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot login
     CVS password: [RET]
     cvs -d :pserver:anonymous@cvs.namazu.org:/storage/cvsroot co emacs-w3m
     tar zxf emacs-w3m-1.4.4.tar.gz
     cp -r emacs-w3m-1.4.4 emacs-w3m-cvs
     \cp -f emacs-w3m/* emacs-w3m-cvs

     上記できた emacs-w3m-cvs フォルダの中身をとっておけば OK 。

**** インストール手順

apt-cyg install cvs autoconf
cd emacs-w3m-cvs
./configure --with-emacs=/app/emacs/emacs/bin/emacs --with-lispdir=/app/emacs/site-lisp/w3m --with-icondir=/app/emacs/emacs/etc/w3m
make
make install

*** aspell

    apt-cyg install aspell aspell-en

*** git

    bash で

    apt-cyg install git
** NTemacs
*** auto-install.el

自動で el をダウンロード、インストールするやつ

**** download

M-x eshell
mkdir -p ~/.emacs.d/auto-install
cd ~/.emacs.d/auto-install
wget http://www.emacswiki.org/emacs/download/auto-install.el
M-x byte-compile-file auto-install.el

**** init.el (.emacs,emacs.el)

;; ------------------------------------------------------------------------
;; @ auto-install.el

;; ロードパスの追加
(add-to-list 'load-path
             "~\\.emacs.d\\auto-install")
(require 'auto-install)
(setq auto-install-directory "~\\.emacs.d\\auto-install")
;; 起動時に EmacsWiki のページ名を補完候補に加えない
(auto-install-update-emacswiki-package-name t)
;; install-elisp.el 互換モードにする
(auto-install-compatibility-setup)
;; ediff 関連のバッファを 1 つのフレームにまとめる
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
(put 'downcase-region 'disabled nil)

*** recentf.el

最近使ったファイルリストを表示するやつ

**** download

M-x install-elisp-from-emacswiki
recentf-ext.el
C-c C-c
C-x k [RET]

**** init.el (.emacs,emacs.el)

;; ------------------------------------------------------------------------
;; @ 最近使ったファイルを開く recentf-ext.el

;; 最近のファイルを 3000 個保存する
(setq recentf-max-saved-items 3000)
;; 読み込み
(require 'recentf-ext)

*** open-junk-file.el

使い捨てのファイルをサクサクつくる

**** download

M-x install-elisp-from-emacswiki
open-junk-file.el
C-c C-c
C-x k [RET]

**** init.el (.emacs,emacs.el)

;; ------------------------------------------------------------------------
;; @ 使い捨てのファイルを開く open-junk-file.el

;; 読み込み
(require 'open-junk-file)

;; ファイル名およびファイル場所の指定
(setq open-junk-file-format "~/junk/%Y-%m-%d-%H%M%S.")

*** anything.el

便利なんだって。使い方、まだ、よくわかんない。

**** download

M-x auto-install-batch
anything
C-c C-c を連打

anything-migemo.el で、*文字コードエラー*

---------------------------------------------------------------------
These default coding systems were tried to encode text
in the buffer `anything-migemo.el':
  (undecided-unix (5157 . 35660) (5158 . 65381) (5159 . 35675) (5160
   . 65388) (5161 . 38577) (5162 . 27115) (5163 . 4194181) (5164
   . 65381) (5165 . 34569) (5166 . 4194203) (5219 . 35660)) (utf-8-unix
     (5163 . 4194181) (5166 . 4194203) (5225 . 4194181) (5228 . 4194203)
     (5281 . 4194181) (5284 . 4194203) (7386 . 4194206) (7529 . 4194206)
     (7669 . 4194206) (8168 . 4194206) (8313 . 4194206))
However, each of them encountered characters it couldn't encode:
undecided-unix cannot encode these: 譌 ・ 譛 ャ 隱 槫   ・ 蜉   ...
utf-8-unix cannot encode these:                     ...

lick on a character (or switch to this window by `C-x o'
nd select the characters by RET) to jump to the place it appears,
here `C-u C-x =' will give information about it.

elect one of the safe coding systems listed below,
r cancel the writing with C-g and edit the buffer
o remove or modify the problematic characters,
r specify any other coding system (and risk losing
he problematic characters).

raw-text emacs-mule no-conversion
---------------------------------------------------------------------

が出るが euc-jp とかしてたら、とりあえず大丈夫っぽいんで、続けて
C-c C-c を連打し、C-x k を連打。ここ、どうにかならないのかなぁ。

念のため

M-x eshell
cd auto-install/
rm -rf anything-migemo.*
wget http://www.emacswiki.org/emacs/download/anything-migemo.el
M-x byte-compile-file
~/.emacs.d/auto-install/anything-migemo.el

**** init.el (.emacs,emacs.el)

;; ------------------------------------------------------------------------
;; @ anything
(require 'anything-startup)

*** aspell (ispell)
**** init.el (.emacs, emacs.el)

;; ------------------------------------------------------------------------
;; @ ispell が無いから、 aspell を使う

(setq-default ispell-program-name "aspell")
(eval-after-load "ispell"
 '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))

**** .aspell.conf

C-x C-f ~/.aspell.conf を作って

lang en_US

とする

*** emacs-w3m
**** init.el (.emacs, emacs.el)

;; ------------------------------------------------------------------------
;; @ w3m-emacs
(require 'w3m-load)
(setq w3m-use-cookies t)
(setq w3m-home-page "www.google.co.jp")

*** bat-mode.el
**** download

M-x eshell
mkdir -p ~/.emacs.d/bat-mode
cd ~/.emacs.d/bat-mode
wget http://ftp.gnu.org/old-gnu/emacs/windows/contrib/bat-mode.el
M-x byte-complie-file bat-mode.el [RET]

**** init.el (.emacs, emacs.el)

;; ------------------------------------------------------------------------
;; @ windows batch-mode
(setq auto-mode-alist
       (append
        (list (cons "file://.[bB][aA][tT]$/" 'bat-mode))
        ;; For DOS init files
        (list (cons "CONFIG\\."   'bat-mode))
        (list (cons "AUTOEXEC\\." 'bat-mode))
        auto-mode-alist))
(autoload 'bat-mode "bat-mode"
      "DOS and Windows BAT files" t)

*** tail.el
**** download

M-x install-elisp-from-emacswiki
tail.el
C-c

**** init.el (.emacs, emacs.el)

;; ------------------------------------------------------------------------
;; @ emacs で tail を動かす

(require 'tail)
(setq tail-volatile nil)                ;前の記載を消さない
(setq tail-hide-delay 100000)           ;隠すまで 100000sec
(setq tail-max-size 15)                 ;Window のサイズ

**** jtail.bat

以下のような jatail.bat を作っておき、 PATH の通ったところに置いてお
いたほうが良い。 eshell も bash も出力が ja_JP.cp932 になっているか
ら。

tail -f %1 | nkf -u -s

*** auto-complete.el
**** download

auto-install だとうまくいかないので、注意。

M-x eshell
cd ~/tmp
wget http://cx4a.org/pub/auto-complete/auto-complete-1.3.1.zip
unzip auto-complete-1.3.1.zip
mv auto-complete-1.3.1 ~/.emacs.d/

**** init.el (.emacs, emacs.el)

7.8 のようなダサい書き方やめたいけど、分からない。

;; ------------------------------------------------------------------------
;; @ 入力補完支援 auto-complete.el

;; ロードパスの追加
(add-to-list 'load-path
             "~\\.emacs.d\\auto-complete-1.3.1")
(require 'auto-complete)

;; 3.2. インストールスクリプト
;; http://cx4a.org/software/auto-complete/manual.ja.html
(add-to-list 'ac-dictionary-directories "~//.emacs.d//auto-complete-1.3.1//dict")
(require 'auto-complete-config)
(ac-config-default)

;; 7.4. TAB で補完を完了する( RET は使わない)
;; http://cx4a.org/software/auto-complete/manual.ja.html
(define-key ac-completing-map "\t" 'ac-complete)
(define-key ac-completing-map "\r" nil)

;; 7.8. 特定のモードで自動で auto-complete-mode を有効にする
;; http://cx4a.org/software/auto-complete/manual.ja.html
(add-to-list 'ac-modes 'org-mode) ;; org-mode になったら、 auto-complete をスタートさせる
(add-to-list 'ac-modes 'text-mode)
(add-to-list 'ac-modes 'ruby-mode)
(add-to-list 'ac-modes 'pyhon-mode)
(add-to-list 'ac-modes 'ansys-mode)

*** ansys-mode.el
**** download

M-x eshell
mkdir ~/tmp/ansys-mode
cd ~/tmp/ansys-mode
wget http://ansys-mode.googlecode.com/files/ansys-mode-13.0.1.tgz
tar zxvf ansys-mode-13.0.1.tgz
mv ~/tmp/ansys-mode/ ~/.emacs.d/

**** anshelp130.bat

C-x C-f
~/.emacs.d/ansys-mode/anshelp130.bat

start hh "c:\Program Files\ANSYS Inc\v130\commonfiles\help\ja\ansys130.chm"

C-x C-s

**** dict/ansys-mode (dynprompt)

ぜったい、もっと簡単な方法ある気がするから、誰か教えてほしい。

C-x C-f
C:/Program Files/ANSYS Inc/v130/ansys/docu/dynaprompt130.ans
C-x C-w
~/.emacs.d/auto-complete-1.3.1/dict/ansys-mode
C-h C-x r t |
M-x replace-string , [RET] | [RET]
M-x org-mode
TAB
M-S-<left> を連打
M-x replace-string |[space] [RET] [RET]
M-<
M-x replace-string | [RET] [RET]
C-h
M-x delete-trailing-whitespace
C-x C-s

**** init.el (.emacs, emacs.el)

;; ------------------------------------------------------------------------
;; @ ansys-mode の設定

;; ロードパスの追加
(add-to-list 'load-path
         "~\\.emacs.d\\ansys-mode")

;; 拡張子によって ansys-mode に
(add-to-list 'auto-mode-alist '("\\.mac\\'" . ansys-mode))
(add-to-list 'auto-mode-alist '("\\.dat\\'" . ansys-mode))
(add-to-list 'auto-mode-alist '("\\.inp\\'" . ansys-mode))
(autoload 'ansys-mode "ansys-mode" nil t)

;; ansys-mode の時は、アウトラインマイナーモードに
(add-hook 'ansys-mode-hook
          '(lambda ()
             (outline-minor-mode 1)
             ))

;; chm ヘルプを起動する
(custom-set-variables
 '(ansys-help-program "~\\.emacs.d\\ansys-mode\\anshelp130.bat"))

*** zlc.el

    zlc ってなんだろ。 TAB で便利。

**** dowonload

auto-install だとうまくいかないので、注意

M-x eshell
cd ~/.emacs.d/
mkdir zlc
M-x w3m-goto-url-new-session
http://github.com/mooz/emacs-zlc/raw/master/zlc.el
C-x C-h
M-w
C-x C-f
~/.emacs.d/zlc/zlc.el
C-y
C-x C-s

**** init.el

;; ------------------------------------------------------------------------
;; @ zlc.el
(add-to-list 'load-path "~\\.emacs.d\\zlc")
(require 'zlc)
;; (setq zlc-select-completion-immediately t)
(let ((map minibuffer-local-map))
  ;;; like menu select
  (define-key map (kbd "<down>")  'zlc-select-next-vertical)
  (define-key map (kbd "<up>")    'zlc-select-previous-vertical)
  (define-key map (kbd "<right>") 'zlc-select-next)
  (define-key map (kbd "<left>")  'zlc-select-previous)
  ;;; reset selection
  (define-key map (kbd "C-c") 'zlc-reset)
  )

*** text-translator.el
**** download

auto-install-bathch だと、 var.el が無いだの、 var.el は文字化けするだので、
正常にインストールできないので注意

M-x eshell
mkdir -p ~/.emacs.d/text-translator
cd ~/.emacs.d/text-translator
wget http://www.emacswiki.org/emacs/download/text-translator.el
wget http://www.emacswiki.org/emacs/download/text-translator-vars.el
wget http://www.emacswiki.org/emacs/download/text-translator-load.el
  
**** init.el (.emacs, emacs.el)

;; ------------------------------------------------------------------------
;; Emacs でテキスト翻訳をする elisp
;; http://quantumfluctuation.blogspot.com/2011/05/text-translatorel_22.html

;; ロードパスの追加
(add-to-list 'load-path "~\\.emacs.d\\text-translator")
(require 'text-translator)
(setq text-translator-auto-selection-func
      'text-translator-translate-by-auto-selection-enja)
;; 自動選択に使用する関数を設定
(setq text-translator-auto-selection-func
      'text-translator-translate-by-auto-selection-enja)
;; グローバルキーを設定
(global-set-key "\C-xt" 'text-translator-translate-by-auto-selection)

;; ;; if you are setting environment variables HTTP_PROXY,
;; ;; you have not to set this.
(setq text-translator-proxy-server "<proxy-address>")
(setq text-translator-proxy-port   <portnum>)

*** iss-mode.el (Inno Setup mode)
**** download

M-x eshell
mkdir -p ~/.emacs.d/iss-mode
cd ~/.emacs.d/iss-mode
wget http://www.xsteve.at/prg/emacs/iss-mode.el

**** init.el

;; @ Inno Setup iss-mode
(add-to-list 'load-path "~/.emacs.d/iss-mode")
(require 'iss-mode)
(autoload 'iss-mode "iss-mode" "Innosetup Script Mode" t)
(setq auto-mode-alist (append '(("\\.iss$"  . iss-mode)) auto-mode-alist))
(setq iss-compiler-path "C:/usr/local/share/InnoSetup5/")
(add-hook 'iss-mode-hook 'xsteve-iss-mode-init)
;; 以下はなんか動かない
(defun xsteve-iss-mode-init ()
     (interactive)
     (define-key iss-mode-map [f6] 'iss-compile)
     (define-key iss-mode-map [(meta f6)] 'iss-run-installer))

*** yatex
**** download

wget http://www.yatex.org/yatex1.74.tar.gz

**** install

tar xzvf yatex1.74.tar.gz
cd yatex1.74/
C-x C-f makefile
C-x C-q

で以下のように編集

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
=== c:/gnupack_devel-6.02/home/tmp/yatex1.74/mekefile.orig    2011-07-12 13:10:20.249481300 +0900
--- c:/gnupack_devel-6.02/home/tmp/yatex1.74/makefile    2011-07-12 13:43:06.550439000 +0900
===============
=== 3,16 ====
  #

  # Edit these variables to be suitable for your site
! PREFIX    = /usr/local

  ## mule2
! EMACS    = mule
! EMACSDIR= ${PREFIX}/lib/${EMACS}
  ## emacs20
! #EMACS    = emacs
! #EMACSDIR= ${PREFIX}/share/${EMACS}
  ## XEmacs
  #EMACS    = xemacs
  #EMACSDIR= ${PREFIX}/lib/${EMACS}
--- 3,16 ----
  #

  # Edit these variables to be suitable for your site
! PREFIX    = C:/gnupack_devel-7.00/app/emacs/emacs

  ## mule2
! # EMACS    = mule
! # EMACSDIR= ${PREFIX}/lib/${EMACS}
  ## emacs20
! # EMACS    = emacs
! # EMACSDIR= ${PREFIX}/share/${EMACS}
  ## XEmacs
  #EMACS    = xemacs
  #EMACSDIR= ${PREFIX}/lib/${EMACS}
===============
=== 21,26 ====
--- 21,30 ----
  #EMACS    = /Applications/Emacs.app/Contents/MacOS/Emacs
  #PREFIX    = /Applications/Emacs.app/Contents/Resources
  #EMACSDIR = ${PREFIX}
+ ## NTemacs23.3
+ EMACS    = emacs
+ EMACSDIR= c:/gnupack_devel-7.00/app/emacs/emacs
+

  LISPDIR    = ${EMACSDIR}/site-lisp/yatex
  # LISPDIR    = ${EMACSDIR}/site-packages/lisp/yatex
===============
=== 35,41 ====

  # Comment out below if you are using Emacs Windows(meadow, etc)
! GEO    = -geometry 80x20+0+0

  ###################
  # Do not edit below
--- 39,45 ----

  # Comment out below if you are using Emacs Windows(meadow, etc)
! # GEO    = -geometry 80x20+0+0

  ###################
  # Do not edit below

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

eshell に戻って

export DISPLAY=":0.0"
make install

としてインストール

C-x C-f
c:/gnupack_devel-7.00/app/emacs/emacs/info/dir

として、以下のように編集

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

=== c:/gnupack_devel-6.02/app/emacs/emacs/info/dir.orig    2011-07-12 13:50:54.602247800 +0900
--- c:/gnupack_devel-6.02/app/emacs/emacs/info/dir    2011-07-12 13:48:52.566308200 +0900
===============
=== 95,97 ====
--- 95,101 ----
                                    Customization facility.
  * SMTP: (smtpmail).             Emacs library for sending mail via SMTP.

+ * YaTeX: (yatexj). Yet Another tex-mode for Emacs. (Japanese).
+ * YaTeX-e: (yatexe). Yet Another tex-mode for Emacs. (English).
+ * yahtml: (yahtmlj). Yet Another HTML-mode for Emacs. (Japanese).
+ * yahtml-e: (yahtmle). Yet Another HTML-mode for Emacs. (English).

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

C-x C-f
~/.emacs.d/init.el

として、以下を追記

;; ------------------------------------------------------------------------
;; @ yatex

(setq load-path (cons "C:/gnupack_devel-6.02/app/emacs/emacs/site-lisp/yatex" load-path))
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq tex-command "c:/w32tex/bin/platex")
(setq dvi2-command "C:/w32tex/dviout/dviout")

(setq YaTeX-use-LaTeX2e t)
(setq YaTeX-use-AMS-LaTeX t)

(setq
 YaTeX-math-sign-alist-private
 '(
   ("q"         "Q"          "(Q)")
   ("z"         "Z"          "ZZ")
   ("t""text""text")
   ("qu"        "quad"         "__")
   ("qq"        "qquad"         "____")
   ("ls"        "varlimsup"     "___\nlim")
   ("li"        "varliminf"     "lim\n---")
   ("il"        "varinjlim"     "lim\n-->")
   ("pl"        "varprojlim"    "lim\n<--")
   ("st"        "text{ s.t. }" "s.t.")
   ("bigop"     "bigoplus"      "_\n(+)~")
   ("bigot"     "bigotimes"     "_\n(x)\n ~")
   ))

; dviからpdfを作成する%sはファイル名
(setq dviprint-command-format "C:/w32tex/bin/dvipdfmx %s")


* 現状の問題点

- iss-mode をバイトコンパイルすると以下の警告

Compiling file c:/gnupack_devel-7.00/home/.emacs.d/iss-mode/iss-mode.el at Fri Sep 09 15:52:41 2011

In iss-mode:
iss-mode.el:138:30:Warning: assignment to free variable
    `compilation-file-regexp-alist'

- zlc をバイトコンパイルすると以下の警告

Compiling file c:/gnupack_devel-7.00/home/.emacs.d/zlc/zlc.el at Fri Sep 09 15:46:34 2011
Entering directory `c:/gnupack_devel-7.00/home/.emacs.d/zlc/'
zlc.el:54:1:Warning: defface for `zlc-selected-completion-face' fails to
    specify containing group

- text-translator.el をバイトコンパイルすると以下のエラー

Compiling file c:/gnupack_devel-7.00/home/.emacs.d/text-translator/text-translator.el at Fri Sep 09 15:49:41 2011
text-translator.el:32:1:Error: Cannot open load file: text-translator-vars

- auto-install で文字化け起こるの何とかならないかなぁ。
- eddif-buffers で config.ini を比較すると 改行コードが ^M になっちゃう
- (set-frame-height (selected-frame) 40) が うまく効かない
- org-mode が変。たくさんかくと org-mode でカーソル移動が遅くなる、カクカク動く。
- anything.el は履歴保存してくれないのかな。デフォルトの設定じゃ駄目なのかしらん。
- w3m で shift 選択できない。どうように、 org-mode でもできない。
- org-mode が auto-complete とかぶる。 auto-complete のキーバインドを強制上書きしても org-mode に聞かない。うざい。
- ansys-mode のカスタマイズ方法が不明。 unix/linux のみ対応を windows 対応にしたいけど、 elisp とか分からない。

* init.el 全体の晒し

; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-

;; ------------------------------------------------------------------------
;; @ coding system

   ;; 日本語入力のための設定
   (set-keyboard-coding-system 'cp932)

   (prefer-coding-system 'utf-8-dos)
   (set-file-name-coding-system 'cp932)
   (setq default-process-coding-system '(cp932 . cp932))

;; ------------------------------------------------------------------------
;; @ ime

   ;; 標準IMEの設定
   (setq default-input-method "W32-IME")

   ;; IME状態のモードライン表示
   (setq-default w32-ime-mode-line-state-indicator "[Aa]")
   (setq w32-ime-mode-line-state-indicator-list '("[Aa]" "[あ]" "[Aa]"))

   ;; IMEの初期化
   (w32-ime-initialize)

   ;; IME OFF時の初期カーソルカラー
   (set-cursor-color "red")

   ;; IME ON/OFF時のカーソルカラー
   (add-hook 'input-method-activate-hook
             (lambda() (set-cursor-color "green")))
   (add-hook 'input-method-inactivate-hook
             (lambda() (set-cursor-color "red")))

   ;; バッファ切り替え時にIME状態を引き継ぐ
   (setq w32-ime-buffer-switch-p nil)

;; ------------------------------------------------------------------------
;; @ encode

   ;; 機種依存文字
   (require 'cp5022x)
   (define-coding-system-alias 'euc-jp 'cp51932)

   ;; decode-translation-table の設定
   (coding-system-put 'euc-jp :decode-translation-table
              (get 'japanese-ucs-jis-to-cp932-map 'translation-table))
   (coding-system-put 'iso-2022-jp :decode-translation-table
              (get 'japanese-ucs-jis-to-cp932-map 'translation-table))
   (coding-system-put 'utf-8 :decode-translation-table
              (get 'japanese-ucs-jis-to-cp932-map 'translation-table))

   ;; encode-translation-table の設定
   (coding-system-put 'euc-jp :encode-translation-table
              (get 'japanese-ucs-cp932-to-jis-map 'translation-table))
   (coding-system-put 'iso-2022-jp :encode-translation-table
              (get 'japanese-ucs-cp932-to-jis-map 'translation-table))
   (coding-system-put 'cp932 :encode-translation-table
              (get 'japanese-ucs-jis-to-cp932-map 'translation-table))
   (coding-system-put 'utf-8 :encode-translation-table
              (get 'japanese-ucs-jis-to-cp932-map 'translation-table))

   ;; charset と coding-system の優先度設定
   (set-charset-priority 'ascii 'japanese-jisx0208 'latin-jisx0201
             'katakana-jisx0201 'iso-8859-1 'cp1252 'unicode)
   (set-coding-system-priority 'utf-8 'euc-jp 'iso-2022-jp 'cp932)

   ;; PuTTY 用の terminal-coding-system の設定
   (apply 'define-coding-system 'utf-8-for-putty
      "UTF-8 (translate jis to cp932)"
      :encode-translation-table
      (get 'japanese-ucs-jis-to-cp932-map 'translation-table)
      (coding-system-plist 'utf-8))
   (set-terminal-coding-system 'utf-8-for-putty)

   ;; East Asian Ambiguous
   (defun set-east-asian-ambiguous-width (width)
     (while (char-table-parent char-width-table)
       (setq char-width-table (char-table-parent char-width-table)))
     (let ((table (make-char-table nil)))
       (dolist (range
            '(#x00A1 #x00A4 (#x00A7 . #x00A8) #x00AA (#x00AD . #x00AE)
             (#x00B0 . #x00B4) (#x00B6 . #x00BA) (#x00BC . #x00BF)
             #x00C6 #x00D0 (#x00D7 . #x00D8) (#x00DE . #x00E1) #x00E6
             (#x00E8 . #x00EA) (#x00EC . #x00ED) #x00F0
             (#x00F2 . #x00F3) (#x00F7 . #x00FA) #x00FC #x00FE
             #x0101 #x0111 #x0113 #x011B (#x0126 . #x0127) #x012B
             (#x0131 . #x0133) #x0138 (#x013F . #x0142) #x0144
             (#x0148 . #x014B) #x014D (#x0152 . #x0153)
             (#x0166 . #x0167) #x016B #x01CE #x01D0 #x01D2 #x01D4
             #x01D6 #x01D8 #x01DA #x01DC #x0251 #x0261 #x02C4 #x02C7
             (#x02C9 . #x02CB) #x02CD #x02D0 (#x02D8 . #x02DB) #x02DD
             #x02DF (#x0300 . #x036F) (#x0391 . #x03A9)
             (#x03B1 . #x03C1) (#x03C3 . #x03C9) #x0401
             (#x0410 . #x044F) #x0451 #x2010 (#x2013 . #x2016)
             (#x2018 . #x2019) (#x201C . #x201D) (#x2020 . #x2022)
             (#x2024 . #x2027) #x2030 (#x2032 . #x2033) #x2035 #x203B
             #x203E #x2074 #x207F (#x2081 . #x2084) #x20AC #x2103
             #x2105 #x2109 #x2113 #x2116 (#x2121 . #x2122) #x2126
             #x212B (#x2153 . #x2154) (#x215B . #x215E)
             (#x2160 . #x216B) (#x2170 . #x2179) (#x2190 . #x2199)
             (#x21B8 . #x21B9) #x21D2 #x21D4 #x21E7 #x2200
             (#x2202 . #x2203) (#x2207 . #x2208) #x220B #x220F #x2211
             #x2215 #x221A (#x221D . #x2220) #x2223 #x2225
             (#x2227 . #x222C) #x222E (#x2234 . #x2237)
             (#x223C . #x223D) #x2248 #x224C #x2252 (#x2260 . #x2261)
             (#x2264 . #x2267) (#x226A . #x226B) (#x226E . #x226F)
             (#x2282 . #x2283) (#x2286 . #x2287) #x2295 #x2299 #x22A5
             #x22BF #x2312 (#x2460 . #x24E9) (#x24EB . #x254B)
             (#x2550 . #x2573) (#x2580 . #x258F) (#x2592 . #x2595)
             (#x25A0 . #x25A1) (#x25A3 . #x25A9) (#x25B2 . #x25B3)
             (#x25B6 . #x25B7) (#x25BC . #x25BD) (#x25C0 . #x25C1)
             (#x25C6 . #x25C8) #x25CB (#x25CE . #x25D1)
             (#x25E2 . #x25E5) #x25EF (#x2605 . #x2606) #x2609
             (#x260E . #x260F) (#x2614 . #x2615) #x261C #x261E #x2640
             #x2642 (#x2660 . #x2661) (#x2663 . #x2665)
             (#x2667 . #x266A) (#x266C . #x266D) #x266F #x273D
             (#x2776 . #x277F) (#xE000 . #xF8FF) (#xFE00 . #xFE0F)
             #xFFFD
             ))
     (set-char-table-range table range width))
       (optimize-char-table table)
       (set-char-table-parent table char-width-table)
       (setq char-width-table table)))
   (set-east-asian-ambiguous-width 2)

   ;; emacs-w3m
   (eval-after-load "w3m"
     '(when (coding-system-p 'cp51932)
        (add-to-list 'w3m-compatible-encoding-alist '(euc-jp . cp51932))))

   ;; Gnus
   (eval-after-load "mm-util"
     '(when (coding-system-p 'cp50220)
        (add-to-list 'mm-charset-override-alist '(iso-2022-jp . cp50220))))

   ;; SEMI (cf. http://d.hatena.ne.jp/kiwanami/20091103/1257243524)
   (eval-after-load "mcs-20"
     '(when (coding-system-p 'cp50220)
        (add-to-list 'mime-charset-coding-system-alist
             '(iso-2022-jp . cp50220))))

   ;; 全角チルダ/波ダッシュをWindowsスタイルにする
   (let ((table (make-translation-table-from-alist '((#x301c . #xff5e))) ))
     (mapc
      (lambda (coding-system)
        (coding-system-put coding-system :decode-translation-table table)
        (coding-system-put coding-system :encode-translation-table table)
        )
      '(utf-8 cp932 utf-16le)))

;; ------------------------------------------------------------------------
;; @ font

   ;; 標準フォントの設定
   ;; (set-default-font "M+2VM+IPAG circle-12")

   ;; IME変換時フォントの設定(テストバージョンのみ)
   ;; (setq w32-ime-font-face "MigMix 1M")
   ;; (setq w32-ime-font-height 22)

   ;; 固定等幅フォントの設定
   ;; (set-face-attribute 'fixed-pitch    nil :family "M+2VM+IPAG circle")

   ;; 可変幅フォントの設定
   ;; (set-face-attribute 'variable-pitch nil :family "M+2VM+IPAG circle")

;; ------------------------------------------------------------------------
;; @ frame

   ;; フレームタイトルの設定
   (setq frame-title-format "%b")

;; ------------------------------------------------------------------------
;; @ buffer

   ;; バッファ画面外文字の切り詰め表示
   (setq truncate-lines nil)

   ;; ウィンドウ縦分割時のバッファ画面外文字の切り詰め表示
   (setq truncate-partial-width-windows t)

   ;; 同一バッファ名にディレクトリ付与
   (require 'uniquify)
   (setq uniquify-buffer-name-style 'forward)
   (setq uniquify-buffer-name-style 'post-forward-angle-brackets)
   (setq uniquify-ignore-buffers-re "*[^*]+*")

;; ------------------------------------------------------------------------
;; @ fringe

   ;; バッファ中の行番号表示
   (global-linum-mode t)

   ;; 行番号のフォーマット
   (set-face-attribute 'linum nil :foreground "red" :height 0.8)
   (setq linum-format "%4d")

;; ------------------------------------------------------------------------
;; @ modeline

   ;; 行番号の表示
   (line-number-mode t)

   ;; 列番号の表示
   (column-number-mode t)

   ;; 時刻の表示
   (require 'time)
   (setq display-time-24hr-format t)
   (setq display-time-string-forms '(24-hours ":" minutes))
   (display-time-mode t)

   ;; cp932エンコード時の表示を「P」とする
   (coding-system-put 'cp932 :mnemonic ?P)
   (coding-system-put 'cp932-dos :mnemonic ?P)
   (coding-system-put 'cp932-unix :mnemonic ?P)
   (coding-system-put 'cp932-mac :mnemonic ?P)

;; ------------------------------------------------------------------------
;; @ cursor

   ;; カーソル点滅表示
   (blink-cursor-mode 0)

   ;; スクロール時のカーソル位置の維持
   (setq scroll-preserve-screen-position t)

   ;; スクロール行数(一行ごとのスクロール)
   (setq vertical-centering-font-regexp ".*")
   (setq scroll-conservatively 35)
   (setq scroll-margin 0)
   (setq scroll-step 1)

   ;; 画面スクロール時の重複行数
   (setq next-screen-context-lines 1)

;; ------------------------------------------------------------------------
;; @ default setting

   ;; 起動メッセージの非表示
   (setq inhibit-startup-message t)

   ;; スタートアップ時のエコー領域メッセージの非表示
   (setq inhibit-startup-echo-area-message -1)

;; ------------------------------------------------------------------------
;; @ image-library
   (setq image-library-alist
         '((xpm "libxpm.dll")
           (png "libpng14.dll")
           (jpeg "libjpeg.dll")
           (tiff "libtiff3.dll")
           (gif "libungif4.dll")
           (svg "librsvg-2-2.dll")
           (gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
           (glib "libglib-2.0-0.dll")
           (gobject "libgobject-2.0-0.dll"))
         )

;; ------------------------------------------------------------------------
;; @ backup

   ;; 変更ファイルのバックアップ
   (setq make-backup-files nil)

   ;; 変更ファイルの番号つきバックアップ
   (setq version-control nil)

   ;; 編集中ファイルのバックアップ
   (setq auto-save-list-file-name nil)
   (setq auto-save-list-file-prefix nil)

   ;; 編集中ファイルのバックアップ先
   (setq auto-save-file-name-transforms
         `((".*" ,temporary-file-directory t)))

   ;; 編集中ファイルのバックアップ間隔(秒)
   (setq auto-save-timeout 30)

   ;; 編集中ファイルのバックアップ間隔(打鍵)
   (setq auto-save-interval 500)

   ;; バックアップ世代数
   (setq kept-old-versions 1)
   (setq kept-new-versions 2)

   ;; 上書き時の警告表示
   ;- (setq trim-versions-without-asking nil)

   ;; 古いバックアップファイルの削除
   (setq delete-old-versions t)

;; ------------------------------------------------------------------------
;; @ key bind

   ;; 標準キーバインド変更
   (global-set-key "\C-z"          'scroll-down)

;; ------------------------------------------------------------------------
;; @ scroll

   ;; バッファの先頭までスクロールアップ
   (defadvice scroll-up (around scroll-up-around)
     (interactive)
     (let* ( (start_num (+ 1 (count-lines (point-min) (point))) ) )
       (goto-char (point-max))
       (let* ( (end_num (+ 1 (count-lines (point-min) (point))) ) )
         (goto-line start_num )
         (let* ( (limit_num (- (- end_num start_num) (window-height)) ))
           (if (< (- (- end_num start_num) (window-height)) 0)
               (goto-char (point-max))
             ad-do-it)) )) )
   (ad-activate 'scroll-up)

   ;; バッファの最後までスクロールダウン
   (defadvice scroll-down (around scroll-down-around)
     (interactive)
     (let* ( (start_num (+ 1 (count-lines (point-min) (point)))) )
       (if (< start_num (window-height))
           (goto-char (point-min))
         ad-do-it) ))
   (ad-activate 'scroll-down)

;; ------------------------------------------------------------------------
;; @ print

   (require 'cl)
   (defun listsubdir (basedir)
     (remove-if (lambda (x) (not (file-directory-p x)))
                (directory-files basedir t "^[^.]")))

   (setq ps-print-color-p t
         ps-lpr-command "gswin32c.exe"
         ps-multibyte-buffer 'non-latin-printer
         ps-lpr-switches '("-sDEVICE=mswinpr2" "-dNOPAUSE" "-dBATCH" "-dWINKANJI")
         printer-name nil
         ps-printer-name nil
         ps-printer-name-option nil
         ps-print-header nil          ; ヘッダの非表示
         )

;; ;; ------------------------------------------------------------------------
;; ;; @ hiwin-mode
;;    (require 'hiwin)

;;    ;; 非アクティブwindowの背景色(hiwin-modeの実行前に設定が必要)
;;    (setq hiwin-deactive-color "gray30")

;;    ;; hiwin-modeを有効にする
;;    (hiwin-mode)

;;    ;; kill-bufferで再描画されるようにする
;;    (defadvice kill-buffer
;;      (around kill-buffer-around activate)
;;      ad-do-it
;;      (if hiwin-ol (hiwin-draw-ol)))

;; ------------------------------------------------------------------------
;; @ tabbar
   (require 'cl)
   (require 'tabbar)

   ;; scratch buffer 以外をまとめてタブに表示する
   (setq tabbar-buffer-groups-function
         (lambda (b) (list "All Buffers")))
   (setq tabbar-buffer-list-function
         (lambda ()
           (remove-if
            (lambda(buffer)
              (unless (string-match (buffer-name buffer) "\\(*scratch*\\|*Apropos*\\|*shell*\\|*eshell*\\|*Customize\\)")
                (find (aref (buffer-name buffer) 0) " *"))
              )
            (buffer-list))))

   ;; tabbarを有効にする
   (tabbar-mode)

   ;; ボタンをシンプルにする
   (setq tabbar-home-button-enabled "")
   (setq tabbar-scroll-right-button-enabled "")
   (setq tabbar-scroll-left-button-enabled "")
   (setq tabbar-scroll-right-button-disabled "")
   (setq tabbar-scroll-left-button-disabled "")

   ;; Ctrl-Tab, Ctrl-Shift-Tab でタブを切り替える
   (dolist (func '(tabbar-mode tabbar-forward-tab tabbar-forward-group tabbar-backward-tab tabbar-backward-group))
     (autoload func "tabbar" "Tabs at the top of buffers and easy control-tab navigation"))
   (defmacro defun-prefix-alt (name on-no-prefix on-prefix &optional do-always)
     `(defun ,name (arg)
        (interactive "P")
        ,do-always
        (if (equal nil arg)
            ,on-no-prefix
          ,on-prefix)))
   (defun-prefix-alt shk-tabbar-next (tabbar-forward-tab) (tabbar-forward-group) (tabbar-mode 1))
   (defun-prefix-alt shk-tabbar-prev (tabbar-backward-tab) (tabbar-backward-group) (tabbar-mode 1))
   (global-set-key [(control tab)] 'shk-tabbar-next)
   (global-set-key [(control shift tab)] 'shk-tabbar-prev)

;; ------------------------------------------------------------------------
;; @ setup-cygwin
   (setq cygwin-mount-cygwin-bin-directory
         (concat (getenv "CYGWIN_DIR") "\\bin"))
   (require 'setup-cygwin)

;; ------------------------------------------------------------------------
;; @ shell
   (require 'shell)
   (setq explicit-shell-file-name "bash.exe")
   (setq shell-command-switch "-c")
   (setq shell-file-name "bash.exe")

   ;; (M-! and M-| and compile.el)
   (setq shell-file-name "bash.exe")
   (modify-coding-system-alist 'process ".*sh\\.exe" 'cp932)

   ;; shellモードの時の^M抑制
   (add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t)

   ;; shell-modeでの補完 (for drive letter)
   (setq shell-file-name-chars "~/A-Za-z0-9_^$!#%&{}@'`.,;()-")

   ;; エスケープシーケンス処理の設定
   (autoload 'ansi-color-for-comint-mode-on "ansi-color"
             "Set `ansi-color-for-comint-mode' to t." t)

   (setq shell-mode-hook
         (function
          (lambda ()

            ;; シェルモードの入出力文字コード
            (set-buffer-process-coding-system 'sjis-dos 'sjis-unix)
            (set-buffer-file-coding-system    'sjis-unix)
            )))

;; ------------------------------------------------------------------------
;; @ menu-tree
   ;; (setq menu-tree-coding-system 'utf-8)
   ;; (require 'menu-tree)

;; ------------------------------------------------------------------------
;; @ migemo/cmigemo
   (setq migemo-command (concat (getenv "INST_DIR")
                                "\\app\\cmigemo\\cmigemo"))
   (setq migemo-options '("-q" "--emacs"))
   (setq migemo-dictionary (concat (getenv "INST_DIR")
                                   "\\app\\cmigemo\\dict\\utf-8\\migemo-dict"))
   (setq migemo-user-dictionary nil)
   (setq migemo-regex-dictionary nil)
   (setq migemo-use-pattern-alist t)
   (setq migemo-use-frequent-pattern-alist t)
   (setq migemo-pattern-alist-length 1024)
   (setq migemo-coding-system 'utf-8-unix)
   (load-library "migemo")
   (migemo-init)


;; ------------------------------------------------------------------------
;; @ 個人的な初期設定

;; デフォルトの文字コード指定
(set-default-coding-systems 'cp932-dos)

; 区切り文字に全角スペースや、・を含める
(setq paragraph-start '"^\\([  ・○<\t\n\f]\\|(?[0-9a-zA-Z]+)\\)")

;; startup directory
(setq default-directory "~/")

;; ファイルのカーソル内の位置を記憶
(setq-default save-place t)

;; ガベッジコレクション閾値 を 40MB に
;; (setq gc-cons-threshold 524288000)

;; ログの記録行数を増やす
(setq message-log-max 10000)

;; undo をいっぱい
(setq undo-limit 100000)
(setq undo-strong-limit 130000)

;; キーストロークの表示速度を上げる
(setq echo-keystrokes 0.1)

;; でかいファイルも普通に開く(デフォルトは10MB)
(setq large-file-warning-threshold (* 50 1024 1024)) ;50MB

;; いちいち yes とか無理だから y にする
(defalias 'yes-or-no-p 'y-or-n-p)

;; BS や Delete キーでリージョン内の文字を削除
(delete-selection-mode 1)

;; TAB を bacspace で消すとき、半角スペースとして消さないで、tabのまま消す
(global-set-key [backspace] 'backward-delete-char)

;; 前回編集していた場所を記憶し,ファイルを開いた時にそこへカーソルを移動
(require 'saveplace)
(setq-default save-place t)

;; 矩形選択とか便利な cua-mode
(cua-mode t)
(setq cua-enable-cua-keys nil) ;;C-xでkill-regionとかになって変な感じになるので。

;; @ クリップボード転送ができないことがある。
(cond (window-system (setq x-select-enable-clipboard t)))

;; kill-ring はテキスト属性(色情報など)を保存しなくていい
(defadvice kill-new (around my-kill-ring-disable-text-property activate)
  (let ((new (ad-get-arg 0)))
    (set-text-properties 0 (length new) nil new)
    ad-do-it))

;; 初期画面をいきなりbuffer-menuにする
(buffer-menu)

; キー入力中にマウスポインタを右上隅へ移動
(mouse-avoidance-mode 'banish)

;; @ 括弧の対応表示
(setq blink-matching-paren t)
(show-paren-mode t)
(setq paren-sexp-mode t)
(set-face-background 'show-paren-match "royalBlue1")

;; 対応する括弧に移動のキーバインドを C-{ と C-} に変更 (C-M-f/p相当)
(global-set-key [?\C-{] 'backward-list)
(global-set-key [?\C-}] 'forward-list)

;; タブ, 全角スペースを色つき表示する (色名は M-x list-color-displayで調べる)
;;  http://homepage1.nifty.com/blankspace/emacs/color.html
(defface my-face-b-1 '((t (:background "red4"))) nil)                           ;全角スペースの色
(defface my-face-b-2 '((t (:background "gray6"))) nil)                          ;タブの色
(defface my-face-u-1 '((t (:foreground "MediumPurple4" :underline t))) nil)     ; 無駄な半角スペースの色
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode ())
  (font-lock-add-keywords
   major-mode
   '(("\t" 0 my-face-b-2 append)
     (" " 0 my-face-b-1 append)
     ("[ \t]+$" 0 my-face-u-1 append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)

;;; フレームサイズをトグルで切り替え
;; http://www.bookshelf.jp/soft/meadow_30.html#SEC416
;; 現在のフレームサイズを調べる方法
;; *scratch*バッファを開き,(frame-width), (frame-height) と書き,C-jする

(setq my-frame-max-flag nil)

(defun my-toggle-frame-size ()
  (interactive)
  (if my-frame-max-flag
      (progn
        (setq my-frame-max-flag nil)
        (if (functionp 'w32-restore-frame)
            (w32-restore-frame)
          (set-frame-configuration my-last-frame-conf)
          (message "not MAX.") (sit-for 2)
          ))
    (setq my-frame-max-flag t)
    (if (functionp 'w32-maximize-frame)
        (w32-maximize-frame)
      (setq my-last-frame-conf (current-frame-configuration))
      (set-frame-position (selected-frame) 0 0)
      ;; フレーム最大化時に (frame-height) で得た値
      (set-frame-height (selected-frame) 50) ; うまく効かない
      ;; フレーム最大化時に (frame-width) で得た値
      (set-frame-width (selected-frame) 195)
      (message "to MAX.") (sit-for 2)
    )))

(add-hook 'ediff-before-setup-hook 'my-toggle-frame-size) ; ediff 立ち上げ時に、画面を最大化
(add-hook 'ediff-quit-hook 'my-toggle-frame-size) ; ediff 終了時に、画面を元に戻す
(global-set-key [f11] 'my-toggle-frame-size)      ; f11 に割り当て

;; @ 定型文の挿入 my-template-select
;; http://www.bookshelf.jp/soft/meadow_37.html#SEC554

(defvar my-template-text-file "~/.template")
(defvar my-template-buffer nil)
(defvar my-template-point nil)

(defun my-template-insert ()
  (interactive)
  (let (content)
    (when (setq
           content
           (get-text-property (point) :content))
      (save-excursion
        (set-buffer my-template-buffer)
        (save-excursion
          (goto-char my-template-point)
          (insert content))))))

(defun my-template-select ()
  (interactive)
  (let ((buffer
         (get-buffer-create "*select template*"))
        templates begin template-map text)
    (setq my-template-buffer (current-buffer)
          my-template-point  (point))
    (unless (file-readable-p my-template-text-file)
      (error "Couldn't read template file: %s"))
    (with-temp-buffer
      (insert-file-contents my-template-text-file)
      (goto-char (point-min))
      (while (re-search-forward "^\\*\\(.*\\)$" nil t)
        (when begin
          (setq templates
                (cons
                 (cons
                  (car templates)
                  (buffer-substring
                   begin (1- (match-beginning 0))))
                 (cdr templates))))
        (setq templates (cons (match-string 1) templates))
        (setq begin (1+ (match-end 0))))
      (when begin
        (setq templates
              (cons
               (cons
                (car templates)
                (buffer-substring begin (point-max)))
               (cdr templates)))))
    (pop-to-buffer buffer)
    (setq buffer-read-only nil
          major-mode       'template-select-mode
          mode-name        "Select Template"
          template-map     (make-keymap))
    (suppress-keymap template-map)
    (define-key template-map " "    'my-template-insert)
    (define-key template-map "\C-m" 'my-template-insert)
    (define-key template-map "n"    'next-line)
    (define-key template-map "p"    'previous-line)
    (define-key template-map "q"    'kill-buffer-and-window)
    (use-local-map template-map)
    (buffer-disable-undo)
    (delete-region (point-min) (point-max))
    (dolist (tt templates)
      (setq text (concat (car tt) "\n"))
      (put-text-property
       0 (length text) :content (cdr tt) text)
      (insert text)
      (goto-char (point-min)))
    (delete-region (1- (point-max)) (point-max))
    (setq buffer-read-only t)
    (set-buffer-modified-p nil)))

;; iserarchで日本語を使う
(defun w32-isearch-update ()
  (interactive)
  (isearch-update))
(define-key isearch-mode-map [compend] 'w32-isearch-update)
(define-key isearch-mode-map [kanji] 'isearch-toggle-input-method)

(add-hook 'isearch-mode-hook
          (lambda () (setq w32-ime-composition-window (minibuffer-window))))
(add-hook 'isearch-mode-end-hook
          (lambda () (setq w32-ime-composition-window nil)))

;;ispell が無いから、 aspell を使う
(setq-default ispell-program-name "aspell")
(eval-after-load "ispell"
 '(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))


;; ------------------------------------------------------------------------
;; @ auto-install.el

;; ロードパスの追加
(add-to-list 'load-path
             "~\\.emacs.d\\auto-install")
(require 'auto-install)
(setq auto-install-directory "~\\.emacs.d\\auto-install")
;; 起動時に EmacsWiki のページ名を補完候補に加えない
(auto-install-update-emacswiki-package-name t)
;; install-elisp.el 互換モードにする
(auto-install-compatibility-setup)
;; ediff 関連のバッファを 1 つのフレームにまとめる
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
(put 'downcase-region 'disabled nil)

;; ------------------------------------------------------------------------
;; @ 最近使ったファイルを開く recentf-ext.el

;; 最近のファイルを 3000 個保存する
(setq recentf-max-saved-items 3000)
;; 読み込み
(require 'recentf-ext)

;; ------------------------------------------------------------------------
;; @ 使い捨てのファイルを開く open-junk-file.el

;; 読み込み
(require 'open-junk-file)

;; ファイル名およびファイル場所の指定
(setq open-junk-file-format "~/junk/%Y-%m-%d-%H%M%S.")

;; ------------------------------------------------------------------------
;; @ anything
(require 'anything-startup)

;; ------------------------------------------------------------------------
;; @ w3m-emacs
(require 'w3m-load)
(setq w3m-use-cookies t)
(setq w3m-home-page "www.google.co.jp")

;; ------------------------------------------------------------------------
;; @ windows batch-mode
(setq auto-mode-alist
       (append
        (list (cons "file://.[bB][aA][tT]$/" 'bat-mode))
        ;; For DOS init files
        (list (cons "CONFIG\\."   'bat-mode))
        (list (cons "AUTOEXEC\\." 'bat-mode))
        auto-mode-alist))
(autoload 'bat-mode "bat-mode"
      "DOS and Windows BAT files" t)

;; ------------------------------------------------------------------------
;; @ emacs で tail を動かす

(require 'tail)
(setq tail-volatile nil)                ;前の記載を消さない
(setq tail-hide-delay 100000)           ;隠すまで 100000sec
(setq tail-max-size 15)                 ;Window のサイズ

;; ------------------------------------------------------------------------
;; @ 入力補完支援 auto-complete.el

;; ロードパスの追加
(add-to-list 'load-path
             "~\\.emacs.d\\auto-complete-1.3.1")
(require 'auto-complete)

;; 3.2. インストールスクリプト
;; http://cx4a.org/software/auto-complete/manual.ja.html
(add-to-list 'ac-dictionary-directories "~//.emacs.d//auto-complete-1.3.1//dict")
(require 'auto-complete-config)
(ac-config-default)

;; 7.4. TAB で補完を完了する( RET は使わない)
;; http://cx4a.org/software/auto-complete/manual.ja.html
(define-key ac-completing-map "\t" 'ac-complete)
(define-key ac-completing-map "\r" nil)

;; 7.8. 特定のモードで自動で auto-complete-mode を有効にする
;; http://cx4a.org/software/auto-complete/manual.ja.html
(add-to-list 'ac-modes 'org-mode) ;; org-mode になったら、 auto-complete をスタートさせる
(add-to-list 'ac-modes 'text-mode)
(add-to-list 'ac-modes 'ruby-mode)
(add-to-list 'ac-modes 'pyhon-mode)
(add-to-list 'ac-modes 'ansys-mode)

;; ------------------------------------------------------------------------
;; @ ansys-mode の設定

;; ロードパスの追加
(add-to-list 'load-path
         "~\\.emacs.d\\ansys-mode")

;; 拡張子によって ansys-mode に
(add-to-list 'auto-mode-alist '("\\.mac\\'" . ansys-mode))
(add-to-list 'auto-mode-alist '("\\.dat\\'" . ansys-mode))
(add-to-list 'auto-mode-alist '("\\.inp\\'" . ansys-mode))
(autoload 'ansys-mode "ansys-mode" nil t)

;; ansys-mode の時は、アウトラインマイナーモードに
(add-hook 'ansys-mode-hook
          '(lambda ()
             (outline-minor-mode 1)
             ))

;; chm ヘルプを起動する
(custom-set-variables
 '(ansys-help-program "C:\\gnupack_devel-7.00\\home\\launcher\\anshelp130.bat"))

;; ------------------------------------------------------------------------
;; @ zlc.el
(add-to-list 'load-path "~\\.emacs.d\\zlc")
(require 'zlc)
;; (setq zlc-select-completion-immediately t)
(let ((map minibuffer-local-map))
  ;;; like menu select
  (define-key map (kbd "<down>")  'zlc-select-next-vertical)
  (define-key map (kbd "<up>")    'zlc-select-previous-vertical)
  (define-key map (kbd "<right>") 'zlc-select-next)
  (define-key map (kbd "<left>")  'zlc-select-previous)
  ;;; reset selection
  (define-key map (kbd "C-c") 'zlc-reset)
  )

;; ------------------------------------------------------------------------
;; Emacs でテキスト翻訳をする elisp
;; http://quantumfluctuation.blogspot.com/2011/05/text-translatorel_22.html

;; ロードパスの追加
(add-to-list 'load-path "~\\.emacs.d\\text-translator")
(require 'text-translator)
(setq text-translator-auto-selection-func
      'text-translator-translate-by-auto-selection-enja)
;; 自動選択に使用する関数を設定
(setq text-translator-auto-selection-func
      'text-translator-translate-by-auto-selection-enja)
;; グローバルキーを設定
(global-set-key "\C-xt" 'text-translator-translate-by-auto-selection)

;; ;; if you are setting environment variables HTTP_PROXY,
;; ;; you have not to set this.
(setq text-translator-proxy-server "<address>")
(setq text-translator-proxy-port   <port>)

;; @ Inno Setup iss-mode
(add-to-list 'load-path "~/.emacs.d/iss-mode")
(require 'iss-mode)
(autoload 'iss-mode "iss-mode" "Innosetup Script Mode" t)
(setq auto-mode-alist (append '(("\\.iss$"  . iss-mode)) auto-mode-alist))
(setq iss-compiler-path "C:/usr/local/share/InnoSetup5/")
(add-hook 'iss-mode-hook 'xsteve-iss-mode-init)
;; 以下はなんか動かない
(defun xsteve-iss-mode-init ()
     (interactive)
     (define-key iss-mode-map [f6] 'iss-compile)
     (define-key iss-mode-map [(meta f6)] 'iss-run-installer))

;; ------------------------------------------------------------------------
;; @ yatex

(setq load-path (cons "C:/gnupack_devel-6.02/app/emacs/emacs/site-lisp/yatex" load-path))
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq tex-command "c:/w32tex/bin/platex")
(setq dvi2-command "C:/w32tex/dviout/dviout")

(setq YaTeX-use-LaTeX2e t)
(setq YaTeX-use-AMS-LaTeX t)

(setq
 YaTeX-math-sign-alist-private
 '(
   ("q"         "Q"          "(Q)")
   ("z"         "Z"          "ZZ")
   ("t""text""text")
   ("qu"        "quad"         "__")
   ("qq"        "qquad"         "____")
   ("ls"        "varlimsup"     "___\nlim")
   ("li"        "varliminf"     "lim\n---")
   ("il"        "varinjlim"     "lim\n-->")
   ("pl"        "varprojlim"    "lim\n<--")
   ("st"        "text{ s.t. }" "s.t.")
   ("bigop"     "bigoplus"      "_\n(+)~")
   ("bigot"     "bigotimes"     "_\n(x)\n ~")
   ))

; dviからpdfを作成する%sはファイル名
(setq dviprint-command-format "C:/w32tex/bin/dvipdfmx %s")

0 件のコメント:

コメントを投稿