2011年6月15日
本家 cygwin と ntemacs の連携
gnupack の文字コードとか分けがわからなく、いろいろいじっていたら、
M-eshell をした後、exit すると、文字コードエラーで止まるようになってし
まった。
python も RCS も文字コード周りのせいで、ちゃんと動かない。unicode嫌い。
そうこうしているうちに、本家の cygwin をインストールした方が、なぜか、
Alt+[半角/全角]で日本語入力できるようになっていた。
これ幸いと、本家 cygwin の方をセットアップしてしまい、gnupack を卒業し
ようと画策。
とりあえず、やったことのまとめ。
gnupack の Emacs を持ってくる
http://sourceforge.jp/projects/gnupack/downloads/51254/emacs-23.3-20110402.exe/
cygwin との連携に必要なものをもってきて、適当なところに保存
http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el
http://www.emacswiki.org/cgi-bin/wiki/setup-cygwin.el
環境変数 HOME を設定し、.wgetrc を作って、PROXY 設定
http_proxy=XXX.XXX.XXX:XX
auto-install.el を持ってくる
http://d.hatena.ne.jp/rubikitch/20091221/autoinstall
init.el を作って以下を記載。こっから、がんがんもってくるぞー。
;; ------------------------------------------------------------------------
;; @ 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)
;; ------------------------------------------------------------------------
;; ------------------------------------------------------------------------
;; @ 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)
;; ------------------------------------------------------------------------
;; @ default setting
;; ;; 起動メッセージの非表示
(setq inhibit-startup-message t)
;; ;; スタートアップ時のエコー領域メッセージの非表示
(setq inhibit-startup-echo-area-message -1)
;; ------------------------------------------------------------------------
;; @ key bind
;; BS や Delete キーでリージョン内の文字を削除
(delete-selection-mode 1)
;; ------------------------------------------------------------------------
;; @ 定型文の挿入 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で日本語を使う
;; http://highmt.wordpress.com/2010/10/25/isearchã§æ—¥æœ¬èªžå…¥åŠ›ã‚’ã‚„ã‚Šã‚„ã™ãã™ã‚‹ãƒ‘ッãƒ/
(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)))
;; ロードパスの追加
(add-to-list 'load-path
"~\\.emacs.d\\cygwin")
(setq cygwin-mount-cygwin-bin-directory "c:/cygwin/bin")
(require 'setup-cygwin)
;; (setenv "HOME" "/home/HOGEHOEG") ;環境変数で設定していないときは必要
;; ------------------------------------------------------------------------
;; @ 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)
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿