-*- mode: org; coding: utf-8 -*-
* はじめに
Cygwin と Emacs の環境がだいぶ固まってきたので、ここでひとつまとめておく。
elisp のこととか良く分からないけど、コピペだけで設定可能だった。指摘して
くれるとうれしい。やってみて、とにかく分からないことばかりだった。 org-mode
で見やすくしておいたけど、 org-mode がイマイチ使えない。腐ってる。俺が。
* システムの概要
以下のマシンに gnupack をつかって、 cygwin と NTemacs の環境を整える。
- 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
* インストール手順および設定
** 下準備
*** TEMP と TMP の環境変数を設定
1. マイコンピュータを右クリック:[プロパティ]
2. [詳細設定]>[環境変数] をクリック
3. [<username>のユーザー環境変数] で、 [新規] をクリック
4. [変数名] に [TEMP] 、 [変数値] に [c:\temp] を記載し、 [OK]
5. 同様に、 [TMP] を設定
*** メイリオ・メイリオ改 の入手
Windows XP にはメイリオがついていないので、それを入手する。ただし、
普通に入手したものもいまいちなので、メイリオ改を入手する。詳細な手
順は以下を参考に。
ことば・その周辺
http://okrchicagob.blog4.fc2.com/
の
2008.01.03 ブログ内記事で取りあげたソフト・ファイルのDL情報
http://okrchicagob.blog4.fc2.com/blog-entry-169.html#169
と
MeiryoKe_Gothic ver.6.02 を生成する方法
http://okrchicagob.blog4.fc2.com/blog-entry-206.html#MRKEGEN602
*以下、生成した各種 ttc ファイルは c:\tmp\fonts に格納したと仮定する*
なお、 gnupack のインストールサイトには Windows のアンチエイリアスが
いまいちということで、 gdit++ のインストールが紹介されているので、こ
ちらでもよい気がする。
gdi++ の導入・設定
http://gnupack.sourceforge.jp/docs/current/UsersGuide_tips.html#_gdi_install
** gnupack
*** インストール手順 ( 30.06.11 現在:リリース版の最新は 6.02 )
1. gnupack gnupack_devel-6.02.exe を以下からダウンロードする
http://sourceforge.jp/projects/gnupack/releases/?package_id=10360
2. [gnupack_devel-6.02.exe] を実行
3. [解凍先] を [C:\] にして、 [実行] をクリック
4. 以下の exe を起動して、それぞれ起動確認
C:\gnupack_devel-6.02\bash.exe
C:\gnupack_devel-6.02\emacs.exe
C:\gnupack_devel-6.02\gvim.exe
*** config.ini の 設定
**** メイリオ改フォントのコピー
1. emacs を起動
2. M-x eshell で eshell を 起動
3. フォントをコピー
cd c:/gnupack_devel-6.02/app/font/
mkidr meiryo_Kai602
cp c:/tmp/fonts/*.ttc c:/gnupack_devel-6.02/app/font/meiryo_Kai602
**** フォント、プロキシの設定
1. C-x C-f で、 c:\gnupack_devel-6.02\config.ini を開く
2. 以下のように修正
=== c:/gnupack_devel-6.02/config.ini 2011-06-30 11:55:32.560593400 +0900
--- c:/gnupack_devel-6.02/config.ini.orig 2011-06-30 11:53:09.965362600 +0900
===============
=== 2,9 ====
[SetEnv]
;_font_ = MS ゴシック
! ;_font_ = Migu 1M
! _font_ = MeiryoKe_Console
_local_ = %INST_DIR%\app\cygwin\local
CYGWIN_DIR = %INST_DIR%\app\cygwin\cygwin
--- 2,8 ----
[SetEnv]
;_font_ = MS ゴシック
! _font_ = Migu 1M
_local_ = %INST_DIR%\app\cygwin\local
CYGWIN_DIR = %INST_DIR%\app\cygwin\cygwin
===============
=== 17,23 ====
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
--- 16,21 ----
===============
=== 67,73 ====
[Font]
font_file1 = %INST_DIR%\app\font\Migu-1M\Migu-1M-regular.ttf
- font_file2 = %INST_DIR%\app\app\font\meiryo_Kai602\meiryo_Kai602.ttc
[Mnt]
mount_point0 = none ;/ ;cygdrive;binary,nouser,noacl,posix=0;
--- 65,70 ----
*** bssh での Foont smoothing の設定
1. bash.exe を起動して タイトルバーを右クリック
2. [Options] を選択
3. [Text] を選択肢、 [Font smoothing] を [Partial] から [Full] に変更
4. [OK] をクリック
*** 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-6.02\app\cygwin\cygwin\bin\python /usr/bin/pyflakes %*
4. pyflakes.bat の確認
cmd を起動して
c:\gnupack_devel-6.02\app\cygwin\cygwin\bin\pyflakes sample.py
をして、指摘してくれれば OK
*** migemo ( ruby )
bash を起動して以下を実行
wget http://0xcc.net/ruby-bsearch/ruby-bsearch-1.5.tar.gz
tar zxvf ruby-bsearch-1.5.tar.gz
cd ruby-bsearch-1.5
cp bsearch.rb /usr/lib/ruby/site_ruby
cd ..
wget http://0xcc.net/ruby-romkan/ruby-romkan-0.4.tar.gz
tar zxvf ruby-romkan-0.4.tar.gz
cd ruby-romkan-0.4
cp romkan.rb /usr/lib/ruby/site_ruby
cd ..
wget http://0xcc.net/migemo/migemo-0.40.tar.gz
tar zxvf migemo-0.40.tar.gz
cd migemo-0.40
./configure --with-emacs=C:/gnupack_devel-6.02/app/emacs/emacs/bin/emacs.exe --with-lispdir=C:/gnupack_devel-6.02/app/emacs/site-lisp
make
make install
migemo /usr/local/share/migemo/migemo-dict | nkf -u -E -s
mig
いろんな文字がバラバラと表示されたら、 Ctrl+C で強制終了
*** 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 installcvs 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
デフォルトの機能を利用した個人的な初期設定は以下
;; ------------------------------------------------------------------------
;; @ 個人的な初期設定
; 区切り文字に全角スペースや、・を含める
(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 41943040)
;; ログの記録行数を増やす
(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)
;; @ 前回編集していた場所を記憶し,ファイルを開いた時にそこへカーソルを移動
(require 'saveplace)
(setq-default save-place t)
;; kill-ring はテキスト属性(色情報など)を保存しなくていい
;; http://www-tsujii.is.s.u-tokyo.ac.jp/~yoshinag/tips/elisp_tips.html#yankoff
(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)
; キー入力中にマウスポインタを右上隅へ移動
; banish
; キー操作によって右上隅に移動 (デフォルト)
; exile
; カーソルが近付いたときだけ右上隅に移動、その後復帰
; jump
; カーソルが近付くとランダムに移動
(mouse-avoidance-mode 'banish)
;; hiwin-mode がなんか変
;; http://sourceforge.jp/forum/forum.php?thread_id=28902&forum_id=22824
(defadvice kill-buffer
(around kill-buffer-around activate)
ad-do-it
(if hiwin-ol (hiwin-draw-ol)))
;; @ 括弧の対応表示
;; http://ksugita.blog62.fc2.com/category1-2.html
(setq blink-matching-paren t)
(show-paren-mode t)
(setq paren-sexp-mode t)
(set-face-background 'show-paren-match "royalBlue1")
;; タブ, 全角スペースを色つき表示する (色名は M-x list-color-display で調べる)
;; http://homepage1.nifty.com/blankspace/emacs/color.html
(defface my-face-b-1 '((t (:background "LightGray"))) nil)
(defface my-face-b-2 '((t (:background "LightBlue"))) nil)
(defface my-face-u-1 '((t (:foreground "LightSkyBlue" :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) 70)
;; フレーム最大化時に (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)
*** migemo.el, isearch
**** download
migemo は cygwin のほうでインストール時に終了しているはず
**** init.el (.emacs,emacs.el)
;; ------------------------------------------------------------------------
;; @ iserarch で日本語を使う
;; http://highmt.wordpress.com/2010/10/25/isearch%e3%81%a7%e6%97%a5%e6%9c%ac%e8%aa%9e%e5%85%a5%e5%8a%9b%e3%82%92%e3%82%84%e3%82%8a%e3%82%84%e3%81%99%e3%81%8f%e3%81%99%e3%82%8b%e3%83%91%e3%83%83%e3%83%81/
(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)))
;; ------------------------------------------------------------------------
;; @ 検索時にミゲモを使う
(require 'migemo)
*** recentf.el
最近使ったファイルリストを表示するやつ
**** download
M-x install-elisp-from-emacs wiki
recentf-ext.el
**** 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
**** 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 で、*文字コードエラー*が出るがそのまま [RET] して、
C-c C-c を連打
M-x eshell
rm -rf anything-migemo.*
wget http://www.emacswiki.org/emacs/download/anything-migemo.el
exit
emacs を再起動して
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
mkdir -p ~/.emacs.d/auto-complete
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)
*** sense-region.el
cua-mode に移行したほうがいいかも。
**** download
M-x install-elisp
http://taiyaki.org/elisp/sense-region/src/sense-region.el
C-c
Warning が出るけど、意味が不明。無視。
Warning: reference to free variable `org-directory'
Leaving directory `~/'
^L
Compiling file c:/gnupack_devel-6.02/home/.emacs.d/auto-install/sense-region.el at Mon Jul 04 15:55:32 2011
Entering directory `c:/gnupack_devel-6.02/home/.emacs.d/auto-install/'
In mell-region-get-selection-marker-list:
sense-region.el:421:16:Warning: `set-buffer' called with 0 args, but requires
1
In mell-region-get-rectangle-marker-list:
sense-region.el:430:16:Warning: `set-buffer' called with 0 args, but requires
1
**** init.el (.emacs, emacs.el)
;; ------------------------------------------------------------------------
;; @ sense-region
;; http://taiyaki.org/elisp/sense-region/
(autoload 'sense-region-on "sense-region"
"System to toggle region and rectangle." t nil)
(sense-region-on)
*** 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
M-x org-mode
C-x h
C-c |
TAB
M-S-<left> を連打
[HOME]
M-x replace-string
|
[RET]
C-x 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)
*** flymake, pyflakes
**** download
cygwin の方で終わってるが、 flymake.elc があると、 emacs.exe が異常終了する。
なんでだろ。よくわからないが、以下を削除。
C:\gnupack_devel-6.02\app\emacs\emacs\lisp\progmodes\flymake.elc
**** init.el (.emacs, emacs.el)
;; ------------------------------------------------------------------------
;; @ flymake で間違っているところをハイライトし、エラーとかをミニバッファへ
(require 'flymake)
;; flymake の色を変更
(set-face-background 'flymake-errline "red4")
(set-face-background 'flymake-warnline "dark slate blue")
;; 文字コードのおまじない。これがあると日本語化通る。意味は不明。
(add-hook 'set-language-environment-hook
(lambda ()
(when (equal "ja_JP.UTF-8" (getenv "LANG"))
(setq default-process-coding-system '(utf-8 . utf-8))
(setq default-file-name-coding-system 'utf-8))
(when (equal "Japanese" current-language-environment)
(setq default-buffer-file-coding-system 'iso-2022-jp))))
;; ruby での設定
(defun flymake-ruby-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
(local-file (file-relative-name
temp-file
(file-name-directory buffer-file-name))))
(list "ruby" (list "-c" local-file))))
(push '(".+\\.rb$" flymake-ruby-init) flymake-allowed-file-name-masks)
(push '("Rakefile$" flymake-ruby-init) flymake-allowed-file-name-masks)
(push '("^\\(.*\\):\\([0-9]+\\): \\(.*\\)$" 1 2 nil 3)
flymake-err-line-patterns)
(add-hook
'ruby-mode-hook
'(lambda ()
;; Don't want flymake mode for ruby regions in rhtml files
(if (not (null buffer-file-name)) (flymake-mode))))
;; python での設定
;;===== PyFlakes
;; code checking via pyflakes+flymake
(when (load "flymake" t)
(defun flymake-pyflakes-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
(local-file (file-relative-name
temp-file
(file-name-directory buffer-file-name))))
(list "pyflakes" (list local-file))))
(add-to-list 'flymake-allowed-file-name-masks
'("\\.py\\'" flymake-pyflakes-init)))
(add-hook 'find-file-hook 'flymake-find-file-hook)
;; miniBuffer にエラーを出力
(defun flymake-show-and-sit ()
"Displays the error/warning for the current line in the minibuffer"
(interactive)
(progn
(let* ((line-no (flymake-current-line-no) )
(line-err-info-list (nth 0 (flymake-find-err-info flymake-err-info
line-no)))
(count (length line-err-info-list)))
(while (> count 0)
(when line-err-info-list
(let* ((file (flymake-ler-file (nth (1- count)
line-err-info-list)))
(full-file
(flymake-ler-full-file (nth (1- count)
line-err-info-list)))
(text (flymake-ler-text (nth (1- count)
line-err-info-list)))
(line (flymake-ler-line (nth (1- count)
line-err-info-list))))
(message "[%s] %s" line text)))
(setq count (1- count)))))
(sit-for 60.0))
;; キー割り当て
(global-set-key "\M-gn" '(lambda ()
(interactive)
(let (line (line-number-at-pos))
(flymake-goto-next-error)
(when (equal line (line-number-at-pos))
(next-error)))))
(global-set-key "\M-gp" '(lambda ()
(interactive)
(let (line (line-number-at-pos))
(flymake-goto-prev-error)
(when (equal line (line-number-at-pos))
(previous-error)))))
(global-set-key "\C-cd" 'flymake-show-and-sit)
*** 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>)
*** text-adjust.el
**** dowonload
auto-install でやると文字化け Warning が出るので注意
M-x esell
mkdir -p ~/.emacs.d/text-adjust
cd ~/.emacs.d/text-adjust
wget http://taiyaki.org/elisp/mell/src/mell.el
wget http://taiyaki.org/elisp/text-adjust/src/text-adjust.el
**** init.el (.emacs,emacs.el)
;; ------------------------------------------------------------------------
;; @ 日本語の文章を整形する texst-adjust.el
(add-to-list 'load-path "~\\.emacs.d\\text-adjust") ; ロードパスの追加
;; 読み込み
(require 'text-adjust)
;; %は例外として半角にしない
(setq text-adjust-hankaku-except "%")
;; org-mode, text-mode のとき自動的には保存する際に実行
(defun text-adjust-space-before-save-if-needed ()
(when (memq major-mode
'(org-mode text-mode ))
(text-adjust-space-buffer)))
(defalias 'spacer 'text-adjust-space-buffer)
(add-hook 'before-save-hook 'text-adjust-space-before-save-if-needed)
*** yspell.el
**** download
git じゃとれなかった・・・接続できないらしい。 proxy かなぁ。うーん。
M-x eshell
mkdir ~/.emacs.d/yspell
w3m-goto-url-new-session
https://raw.github.com/yama-natuki/yspel/master/yspel.el
C-h M-w
C-x C-f ~/.emacs.d/yspell/yspell.el
C-y
**** init.el (.emacs, emacs.el)
;; ------------------------------------------------------------------------
;; @ 日本語のチェックをする
(add-to-list 'load-path "~/.emacs.d/yspel")
(require 'yspel)
*** google.el
**** download
auto-install だとできないので注意
mkdir -p ~/.emacs.d/google
cd ~/.emacs.d/google/
wget http://www.bookshelf.jp/elc/google.el
**** init.el (.emacs, emacs.el)
;; ------------------------------------------------------------------------
;; @ google で検索
(add-to-list 'load-path "~/.emacs.d/google")
(load "google")
* init.el (.emacs 、 emacs.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)
;; ------------------------------------------------------------------------
;; @ 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)
;; ------------------------------------------------------------------------
;; @ 個人的な初期設定
; 区切り文字に全角スペースや、・を含める
(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 41943040)
;; ログの記録行数を増やす
(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)
;; @ 前回編集していた場所を記憶し,ファイルを開いた時にそこへカーソルを移動
(require 'saveplace)
(setq-default save-place t)
;; kill-ring はテキスト属性(色情報など)を保存しなくていい
;; http://www-tsujii.is.s.u-tokyo.ac.jp/~yoshinag/tips/elisp_tips.html#yankoff
(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)
; キー入力中にマウスポインタを右上隅へ移動
; banish
; キー操作によって右上隅に移動 (デフォルト)
; exile
; カーソルが近付いたときだけ右上隅に移動、その後復帰
; jump
; カーソルが近付くとランダムに移動
(mouse-avoidance-mode 'banish)
;; @ 括弧の対応表示
;; http://ksugita.blog62.fc2.com/category1-2.html
(setq blink-matching-paren t)
(show-paren-mode t)
(setq paren-sexp-mode t)
(set-face-background 'show-paren-match "royalBlue1")
;; タブ, 全角スペースを色つき表示する (色名は M-x list-color-display で調べる)
;; http://homepage1.nifty.com/blankspace/emacs/color.html
(defface my-face-b-1 '((t (:background "LightGray"))) nil)
(defface my-face-b-2 '((t (:background "LightBlue"))) nil)
(defface my-face-u-1 '((t (:foreground "LightSkyBlue" :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) 70)
;; フレーム最大化時に (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
;; ロードパスの追加
(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)
;; ------------------------------------------------------------------------
;; @ iserarch で日本語を使う
;; http://highmt.wordpress.com/2010/10/25/isearch%e3%81%a7%e6%97%a5%e6%9c%ac%e8%aa%9e%e5%85%a5%e5%8a%9b%e3%82%92%e3%82%84%e3%82%8a%e3%82%84%e3%81%99%e3%81%8f%e3%81%99%e3%82%8b%e3%83%91%e3%83%83%e3%83%81/
(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)))
;; ------------------------------------------------------------------------
;; @ 検索時にミゲモを使う
(require 'migemo)
;; ------------------------------------------------------------------------
;; @ 最近使ったファイルを開く 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)
;; ------------------------------------------------------------------------
;; @ ispell が無いから、 aspell を使う
;; http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Aspell
(setq-default ispell-program-name "aspell")
(eval-after-load "ispell"
'(add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))
;; ------------------------------------------------------------------------
;; @ 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 "\\.[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)
;; ローカルキーマップより優先
(setq ac-use-overriding-local-map t)
;; ------------------------------------------------------------------------
;; @ sense-region
;; http://taiyaki.org/elisp/sense-region/
(autoload 'sense-region-on "sense-region"
"System to toggle region and rectangle." t nil)
(sense-region-on)
;; ------------------------------------------------------------------------
;; @ 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-6.02/home/.emacs.d/ansys-mode/anshelp130.bat"))
;; ;; chm ヘルプを起動する
;; (custom-set-variables
;; ;; custom-set-variables was added by Custom.
;; ;; If you edit it by hand, you could mess it up, so be careful.
;; ;; Your init file should contain only one such instance.
;; ;; If there is more than one, they won't work right.
;; '(ansys-help-program "C:\\\\gnupack_devel-6.02\\home\\launcher\\anshelp130.bat")
;; '(blink-cursor-mode nil)
;; '(column-number-mode t)
;; '(display-time-mode t)
;; '(show-paren-mode t))
;; ------------------------------------------------------------------------
;; @ 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
;; ロードパスの追加
(add-to-list 'load-path "~\\.emacs.d\\python-mode")
(require 'python-mode)
(setq auto-mode-alist (cons '("\\.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)
;; ------------------------------------------------------------------------
;; @ flymake で間違っているところをハイライトし、エラーとかをミニバッファへ
(require 'flymake)
;; flymake の色を変更
(set-face-background 'flymake-errline "red4")
(set-face-background 'flymake-warnline "dark slate blue")
;; 文字コードのおまじない。これがあると日本語化通る。意味は不明。
(add-hook 'set-language-environment-hook
(lambda ()
(when (equal "ja_JP.UTF-8" (getenv "LANG"))
(setq default-process-coding-system '(utf-8 . utf-8))
(setq default-file-name-coding-system 'utf-8))
(when (equal "Japanese" current-language-environment)
(setq default-buffer-file-coding-system 'iso-2022-jp))))
;; ruby での設定
(defun flymake-ruby-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
(local-file (file-relative-name
temp-file
(file-name-directory buffer-file-name))))
(list "ruby" (list "-c" local-file))))
(push '(".+\\.rb$" flymake-ruby-init) flymake-allowed-file-name-masks)
(push '("Rakefile$" flymake-ruby-init) flymake-allowed-file-name-masks)
(push '("^\\(.*\\):\\([0-9]+\\): \\(.*\\)$" 1 2 nil 3)
flymake-err-line-patterns)
(add-hook
'ruby-mode-hook
'(lambda ()
;; Don't want flymake mode for ruby regions in rhtml files
(if (not (null buffer-file-name)) (flymake-mode))))
;; python での設定
;;===== PyFlakes
;; code checking via pyflakes+flymake
(when (load "flymake" t)
(defun flymake-pyflakes-init ()
(let* ((temp-file (flymake-init-create-temp-buffer-copy
'flymake-create-temp-inplace))
(local-file (file-relative-name
temp-file
(file-name-directory buffer-file-name))))
(list "pyflakes" (list local-file))))
(add-to-list 'flymake-allowed-file-name-masks
'("\\.py\\'" flymake-pyflakes-init)))
(add-hook 'find-file-hook 'flymake-find-file-hook)
;; miniBuffer にエラーを出力
(defun flymake-show-and-sit ()
"Displays the error/warning for the current line in the minibuffer"
(interactive)
(progn
(let* ((line-no (flymake-current-line-no) )
(line-err-info-list (nth 0 (flymake-find-err-info flymake-err-info
line-no)))
(count (length line-err-info-list)))
(while (> count 0)
(when line-err-info-list
(let* ((file (flymake-ler-file (nth (1- count)
line-err-info-list)))
(full-file
(flymake-ler-full-file (nth (1- count)
line-err-info-list)))
(text (flymake-ler-text (nth (1- count)
line-err-info-list)))
(line (flymake-ler-line (nth (1- count)
line-err-info-list))))
(message "[%s] %s" line text)))
(setq count (1- count)))))
(sit-for 60.0))
;; キー割り当て
(global-set-key "\M-gn" '(lambda ()
(interactive)
(let (line (line-number-at-pos))
(flymake-goto-next-error)
(when (equal line (line-number-at-pos))
(next-error)))))
(global-set-key "\M-gp" '(lambda ()
(interactive)
(let (line (line-number-at-pos))
(flymake-goto-prev-error)
(when (equal line (line-number-at-pos))
(previous-error)))))
(global-set-key "\C-cd" 'flymake-show-and-sit)
;; ------------------------------------------------------------------------
;; 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 "proxyaddress")
(setq text-translator-proxy-port portnum)
;; ------------------------------------------------------------------------
;; @ 日本語の文章を整形する texst-adjust.el
(add-to-list 'load-path "~\\.emacs.d\\text-adjust") ; ロードパスの追加
;; 読み込み
(require 'text-adjust)
;; %は例外として半角にしない
(setq text-adjust-hankaku-except "%")
;; org-mode, text-mode のとき自動的には保存する際に実行
(defun text-adjust-space-before-save-if-needed ()
(when (memq major-mode
'(org-mode text-mode ))
(text-adjust-space-buffer)))
(defalias 'spacer 'text-adjust-space-buffer)
(add-hook 'before-save-hook 'text-adjust-space-before-save-if-needed)
;; ------------------------------------------------------------------------
;; @ 日本語のチェックをする
(add-to-list 'load-path "~/.emacs.d/yspel")
(require 'yspel)
;; ------------------------------------------------------------------------
;; @ google で検索
(add-to-list 'load-path "~/.emacs.d/google")
(load "google")
* 現状の問題点
- まず、文字コードが良く分からない。 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 件のコメント:
コメントを投稿