-*- 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)
;; ------------------------------------------------------------------------
(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 件のコメント:
コメントを投稿