Vim7で日本語入力までの道のり
2006年11月18日(土) 23:00
TextMateで日本語入力が出来るようになりました。ずっと求めていた機能が使えることになった途端、自分がエディタに求めていたことが分かりました。
自分が求めていたのは、「ファイルエクスプローラ+タブ」ではなく、「キーボード操作+なんでもできる」なのでした。
そういう意味ではAquamacsはemacsなので何でもできそうです。Aquaなので日本語の入力にも問題なく、テーマもたくさん入っていて好みなのですが、subversionを直にエディタから使おうと思うと面倒です。
もう一つ何でもできそうなエディタとして、最近流行のVim7というものがあります。拡張がPythonで書けるらしいです。ちょっと調べてみると、OSXで日本語入力に対応しようとすると結構面倒(XCodeでコンパイルってのもちょっと。エディタなのに)。
いやいや、あるじゃん。carbonなVim7が。というお話。
自分が求めていたのは、「ファイルエクスプローラ+タブ」ではなく、「キーボード操作+なんでもできる」なのでした。
そういう意味ではAquamacsはemacsなので何でもできそうです。Aquaなので日本語の入力にも問題なく、テーマもたくさん入っていて好みなのですが、subversionを直にエディタから使おうと思うと面倒です。
もう一つ何でもできそうなエディタとして、最近流行のVim7というものがあります。拡張がPythonで書けるらしいです。ちょっと調べてみると、OSXで日本語入力に対応しようとすると結構面倒(XCodeでコンパイルってのもちょっと。エディタなのに)。
いやいや、あるじゃん。carbonなVim7が。というお話。
OSXでVim7日本語入力環境を作る
日本語環境を作る方法は、Mac Vim 再びとずんWiki - vimのコードです。macvimをダウンロード・展開して、vimをアプリケーションディレクトリに配置。
~/.vimrcを作成して、以下を記入するだけ。
set enc=utf-8
set fenc=utf-8
set fencs=utf-8,euc-jp,iso-2022-jp,cp932
set ffs=unix
if &encoding !=# 'utf-8'
set encoding=japan
set fileencoding=japan
endif
if has('iconv')
let s:enc_euc = 'euc-jp'
let s:enc_jis = 'iso-2022-jp'
" iconvがeucJP-msに対応しているかをチェック
if iconv("¥x87¥x64¥x87¥x6a", 'cp932', 'eucjp-ms') ==# "¥xad¥xc5¥xad¥xcb"
let s:enc_euc = 'eucjp-ms'
let s:enc_jis = 'iso-2022-jp-3'
" iconvがJISX0213に対応しているかをチェック
elseif iconv("¥x87¥x64¥x87¥x6a", 'cp932', 'euc-jisx0213') ==# "¥xad¥xc5¥xad¥xcb"
let s:enc_euc = 'euc-jisx0213'
let s:enc_jis = 'iso-2022-jp-3'
endif
" fileencodingsを構築
if &encoding ==# 'utf-8'
let s:fileencodings_default = &fileencodings
let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
let &fileencodings = &fileencodings .','. s:fileencodings_default
unlet s:fileencodings_default
else
let &fileencodings = &fileencodings .','. s:enc_jis
set fileencodings+=utf-8,ucs-2le,ucs-2
if &encoding =~# '^¥(euc-jp¥|euc-jisx0213¥|eucjp-ms¥)$'
set fileencodings+=cp932
set fileencodings-=euc-jp
set fileencodings-=euc-jisx0213
set fileencodings-=eucjp-ms
let &encoding = s:enc_euc
let &fileencoding = s:enc_euc
else
let &fileencodings = &fileencodings .','. s:enc_euc
endif
endif
" 定数を処分
unlet s:enc_euc
unlet s:enc_jis
endif
" □とか○でカーソル位置がずれないようにする
set ambiwidth=double
あれま、簡単。でも文字が汚いし、日本語はちょっと変。
やっぱりAquamacsかな。。。だれかvc-svn教えて!
追記: Subversion メモによると、簡単Aquamacs/Contents/Resources/site-lispにpsvnというディレクトリを掘って、psvn.elを置く。
~/.emacs.elに以下を記述して、M-x svn-statusとかするだけ
;;-----------------------------------------------------------------
;; psvn.el
;;-----------------------------------------------------------------
(require 'psvn)
(define-key svn-status-mode-map "q" 'egg-self-insert-command)
(define-key svn-status-mode-map "Q" 'svn-status-bury-buffer)
(define-key svn-status-mode-map "p" 'svn-status-previous-line)
(define-key svn-status-mode-map "n" 'svn-status-next-line)
(define-key svn-status-mode-map "<" 'svn-status-examine-parent)
(add-hook 'dired-mode-hook
'(lambda ()
(require 'dired-x)
;;(define-key dired-mode-map "V" 'cvs-examine)
(define-key dired-mode-map "V" 'svn-status)
(turn-on-font-lock)
))
(setq svn-status-hide-unmodified t)
(setq process-coding-system-alist
(cons '("svn" . euc-jp) process-coding-system-alist))
なかなか素晴らしい:)
