2011年9月7日

gnupack 6.02 on Windows 7 x64


-*- mode: org; coding: utf-8 -*-

* はじめに

  Cygwin と Emacs の環境がだいぶ固まってきたので、ここでひとつまとめて
  おく-その2 Windows 7 64bit 編-。elisp のこととか良く分からないけど、
  コピペだけで設定可能だった。指摘してくれるとうれしい。

  v6.02 から以下は削除した。うまくいかない or つかわない から

  - text-adjust.el
    ソースコードと混在させたテキストを使うときに逆に困る。変な半角
    あいてしまうし。このあたりの調整のしかたが不明

  - google.el
    つかわない

  - yspel.el
    つかわない・・・使いたいけどめんどい。自動でやってくれないか。

  - flymake.el
    うまく動かない。

  - sense-region.el
    cua-mode に移行

  - migemo.el
    v7 からデフォルトで入っている

* システムの概要

  以下のマシンに gnupack をつかって、 cygwin と NTemacs の環境を整える。

  + OS 名 :: Microsoft Windows 7 Professional
  + バージョン :: 6.1.7601 Service Pack 1 ビルド 7601
  + OS 製造元 ::  Microsoft Corporation
  + システム名 :: <machine-name>
  + システム製造元 ::  Dell Inc.
  + システムモデル ::  Precision M4600
  + システムの種類 :: x64-ベース PC
  + プロセッサ :: Intel(R) Core(TM) i7-2720QM CPU @ 2.20GHz、2201 Mhz、4 個のコア、8 個のロジカル プロセッサ
  + BIOS バージョン/ 日付 :: Dell Inc. A04, 2011/06/17
  + SMBIOS バージョン :: 2.6
  + Windows ディレクトリ :: C:\WINDOWS
  + システム ディレクトリ :: C:\WINDOWS\system32
  + ブート デバイス ::  \Device\HarddiskVolume2
  + ロケール :: 日本
  + ハードウェア アブストラクション レイヤ  バージョン = "6.1.7601.17514"
  + ユーザー名 :: <domain>\<username>
  + タイム ゾーン :: 東京 (標準時)
  + 合計物理メモリ :: 7.88GB
  + 利用可能な物理メモリ :: 5.64GB
  + 合計仮想メモリ :: 15.8 GB
  + 利用可能な仮想メモリ :: 13.7 GB
  + ページ ファイルの空き容量 :: 7.88 GB
  + ページ ファイル :: C:\pagefile.sys

* インストール手順および設定
** gnupack
*** インストール手順 ( 27.08.11 現在:リリース版の最新は 7.00 )

    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

*** config.ini の 設定
**** フォント、プロキシの設定

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

2. 以下のように修正

=== c:/gnupack_devel-7.00/config.ini    2011-08-28 16:55:31.970894200 +0900
--- c:/gnupack_devel-7.00/config.ini.orig    2011-08-28 14:10:49.504883400 +0900
===============
=== 16,31 ====
      MAKE_MODE      = unix
      TZ             = JST-9
      LANG           = ja_JP.cp932
-     http_proxy     = http://<username>:<psssword>@<proxyaddress>:<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
-
-     ANSYSLMD_LICENSE_FILE = <hostname>
 
      GS_LIB         = %INST_DIR%\app\gs\lib;%INST_DIR%\app\gs\kanji;%INST_DIR%\app\gs\Resource\Init
      GS_DLL         = %INST_DIR%\app\gs\bin\gsdll32.dll
--- 16,25 ----

*** wget の proxy 設定

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

1. emacs を起動

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

   http_proxy=<proxyadress>:<port>

** cygwin
*** w3m

bash を起動して

apt-cyg w3m

とするだけ。起動確認は

w3m -M www.google.com

で、終了は

q

で可能

*** 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 出た気がする・・・。

*** RCS

    一番単純なバージョン管理。 bash で apt-cyg install rcs だけ。

*** 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 。

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

     bash を起動し以下を実行。 autoconf は必要みたい。

     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

    bash で以下。

    apt-cyg install aspell aspell-en

*** git

    bash で

    apt-cyg install git
** NTemacs
*** Personal initialization

=== c:/gnupack_devel-7.00/home/.emacs.d/init.el.orig    2011-08-30 10:13:45.173259700 +0900
--- c:/gnupack_devel-7.00/home/.emacs.d/init.el    2011-08-30 10:18:51.686908000 +0900
===============
=== 340,360 ====
           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
--- 340,360 ----
           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
===============
=== 455,458 ====
--- 455,646 ----
     (load-library "migemo")
     (migemo-init)
 
+ ;; ------------------------------------------------------------------------
+ ;; @ 個人的な初期設定
+
+ ; 区切り文字に全角スペースや、・を含める
+ (setq paragraph-start '"^\\([  ・○<\t\n\f]\\|(?[0-9a-zA-Z]+)\\)")
+
+ ;; startup directory
+ (setq default-directory "~/")
 
+ ;; ファイルのカーソル内の位置を記憶
+ (setq-default save-place t)
+
+ ;; ガベッジコレクション閾値 を 500MB に
+ (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)
+
+ ;; @ クリップボード転送ができないことがある。
+ (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) 40) ; うまく効かない
+       ;; フレーム最大化時に (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)))

*** auto-install.el

    簡単に el をインストールできるってもの。文字化けとかでインストールできない
    ものも多いんだけど、とりあえず入れる。*以下、これが入っている事を仮定する*。

**** download

     emacs を起動して、以下を実行

     M-x eshell
     mkdir -p ~/.emacs.d/auto-install
     cd ~/.emacs.d/auto-install
     wget http://www.emacswiki.org/emacs/download/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

**** 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
**** 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:                     ...

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

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

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

     が出るが euc-jp とかしてたら、とりあえず大丈夫っぽいんで、続けて
     C-c C-c を連打し、念のため

     M-x eshell
     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)
**** download

     cygwin の方で終わってる

**** 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

     ~/.aspell.conf を作って

     lang en_US

     とする

*** emacs-w3m
**** download

     cygwin の方で終わってる

**** 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

     ftp だからか時間がかかるので注意

     M-x install-elisp
     http://ftp.gnu.org/old-gnu/emacs/windows/contrib/bat-mode.el
     C-c

**** 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

     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)

     add-to-list の書き方ダサい。。。。

     ;; ------------------------------------------------------------------------
     ;; @ 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)
       )

*** python-mode.el

    本当は新しい python.el を使いたいけど、 C-c がうまくいかないし、 pymacs ? の
    入れ方も分からないしってことで、古いほうの python-mode.el を入れる

**** download

     M-x eshell
     cd tmp
     wget http://launchpad.net/python-mode/trunk/5.2.0/+download/python-mode-5.2.0.tgz
     tar zxvf python-mode-5.2.0.tgz
     mv python-mode/ ~/.emacs.d/

**** init.el

     ;; ------------------------------------------------------------------------
     ;; @ python-mode
     ;; ロードパスの追加
     (add-to-list 'load-path "~\\.emacs.d\\python-mode")
     (require 'python-mode)
     (setq auto-mode-alist (cons '("file://.py$/" . python-mode) auto-mode-alist))
     (setq interpreter-mode-alist (cons '("python" . python-mode)
                                        interpreter-mode-alist))
     (autoload 'python-mode "python-mode" "Python editing mode." t)

*** 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-6.02/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 on gnuplot
+ EMACS    = emacs
+ EMACSDIR= c:/gnupack_devel-6.02/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-6.02/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")

 
* 現状の問題点

- なんかチカチカするのと、画面描画フリーズみたいになる(いわゆるマウスポインタ消しゴムで直る現象)
- eddif-buffers で config.ini を比較すると 改行コードが ^M になっちゃう
- (set-frame-height (selected-frame) 40) が うまく効かない
- (setq gc-cons-threshold 524288000) で、500MB 以上設定すると emacs が起動しない
- まず、文字コードが良く分からない。 python 周りとか特に。本家の cygwin と違うし。 utf-8 に全部したい。
- flymake の C 設定もよく分からない。 makefile が必要とか無理だし。 c のファイルを開くと flymake に怒られる
- git が使えない。 proxy 設定してるのになぁ。
- cvs も使えない。 http_proxy のトンネル方法もイマイチ不明
- org-mode が変。たくさんかくと org-mode でカーソル移動が遅くなる、カクカク動く。
- hiwin-mode が変。フォーラムに上がってる設定をしても、非アクティブ、アクティブの判断が悪く、ずっとグレー。グレー
  をやめても、*scratch* や w3m で青くなったり黒くなったりでチラついて気持ち悪い。
- anything.el は履歴保存してくれないのかな。デフォルトの設定じゃ駄目なのかしらん。
- w3m で shift 選択できない。どうように、 org-mode でもできない。
- org-mode が auto-complete とかぶる。 auto-complete のキーバインドを強制上書きしても org-mode に聞かない。うざい。
- ansys-mode のカスタマイズ方法が不明。 unix/linux のみ対応を windows 対応にしたいけど、 elisp とか分からない。

 

0 件のコメント:

コメントを投稿