ぼちぼち散歩

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-)

ページの先頭へ

X11上での日本語入力にMacUIMが使えた

MacのX11で日本語入力するには,MacPortsのkinput2 + cannaしかないと思っていたら,MacUIMがX11でも使えることが分かった.cohtan blog: MacUIMすごいのエントリに感謝!

使い方はHowTo/日本語環境構築 - MacPortsWiki-JPの通りで,前の記事のkinput2のところをuimに直したら使えた.また, /Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim & となっているところに,--engine=skk をつけるとskk,--engine=prime をつけるとprime,何もつけないとanthyとなるっぽい.さらに,一部の設定はMacUIMをインストールするとシステム環境設定にインストールされるPrefpaneから行えたりする.

とりあえずこれから設定とかいろいろいじってみる.あと,X11上でどうにかして日本語キーボードの「英数」,「カナ/かな」キーでIMEのon,offができるようにしたい.ぼちぼち散歩 HHK Lite2を買ったのでWindowsのキーボード設定を見直してみたにも書いたけど,IMEのon,offが「トグル」というのは最強に気にくわないのでなんとかしたいなぁ.

2008/09/30 14:22 | Mac | トラックバック(0) | コメント(0)

ページの先頭へ

Macでurxvt + screen + zsh + vim環境を作ってみた

iTermの最新版が背景にblurかけれるようになったりしてかっこいいとか思っていて,zsh + Vimしてるとなんだか重いもののそういうものだと思って使ってました.ところが,どうやらiTermじゃなくてurxvt使うとさくさくだという話を聞いて試してみた.

基本的にはBeginning OS X 10.5 - Beginning OS Xを最強に参考にさせて頂きながらも,自分が実際にやってみたことをざっくりと書きます.後から思い出しながら書いてるので間違ってたりするかも知れませんが,大目にみてください(^-^;)

環境整備

ひとまず,Beginning OS X 10.5/インフラ整備編 - Beginning OS Xのうち必要なところをやっていく.X11は指示通りXQuartz projectより最新版をひっぱてきた.XcodeもADCから最新版をインストール済み.Terminal.appは使わないのでパス.MacPortsは既に入っている.kinput2を+cannaで入れておく.environment.plistはここでLANG=ja_JP.UTF-8を指定するとFirefoxアドオンのdel.icio.us IncSearchが正しく動かなくなることがあるのでここでは指定せず,XMODIFIERSだけ指定する.bashではなくzshを使うので,このページの.bashrcの内容を.zshrcに,.bash_profileの内容を.zshenvに書いて,適当に調整する..inputrcも一応..emacsはEmacs使わないのでパス.最後に.xinitrcも作っておく.

urxvtのインストール

Macportsでインストールできるんだけれでも,256色表示のパッチが当たってないようなので,軽量端末エミュレータ urxvtの導入 - ns9logを参考に適当にオレオレPortfileをでっちあげてみた.元のPortfileの末尾に+color256というvariantを追加してみたけど,あんまりよくわかってないので間違っているかも知れません.とりあえず,sudo port install rxvt-unicode +color256 でインストールできました.オレオレPortfileの使い方はHowTo/LocalPortfile - MacPortsWiki-JPなどを参考にして下さい.

# $Id: Portfile 37788 2008-06-23 12:23:21Z takanori@macports.org $

PortSystem      1.0

name            rxvt-unicode
version         9.05
categories      x11
maintainers     nomaintainer
description     Unicode-aware rxvt clone.
long_description \r
                rxvt-unicode is a clone of the well-known terminal \r
                emulator rxvt. Some of it's main features over rxvt are \r
                use of UCS-2 or UCS-4 to store text internally, \r
                locale-correct in- and output, stability, \r
                completely flicker-free \r
                display, support for Xft and core fonts in any \r
                combination, etc.
platforms       darwin
homepage        http://software.schmorp.de/pkg/rxvt-unicode.html
master_sites    http://dist.schmorp.de/rxvt-unicode/ \r
                http://dist.schmorp.de/rxvt-unicode/Attic/
use_bzip2       yes
checksums       md5 bf7cbc6440346425c9e9773d213c304f \r
                sha1 758d57a88c3521f780bcd21c70d3995f53a2f6e3 \r
                rmd160 0f4343a9aa0a8b26d10c6049c1afca2cc7569fc3

depends_lib     lib:libX11.6:XFree86 \r
                port:expat \r
                port:fontconfig \r
                port:freetype \r
                port:ncursesw \r
                port:perl5.8 \r
                port:pkgconfig \r
                port:render \r
                port:Xft2 \r
                port:xrender \r
                port:zlib

configure.args  --enable-everything --with-codeset=all \r
                --disable-utmp --disable-afterimage \r
                --mandir=${prefix}/share/man

use_parallel_build  yes

destroot.env    TERMINFO=${destroot}${prefix}/share/terminfo
destroot.violate_mtree  yes
pre-destroot {
    xinstall -m 755 -d ${destroot}${prefix}/share/terminfo
    move ${worksrcpath}/INSTALL ${worksrcpath}/INSTALL_
}
post-destroot {
    move ${worksrcpath}/INSTALL_ ${worksrcpath}/INSTALL
    xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name}/etc
    xinstall -m 644 -W ${worksrcpath} COPYING Changes INSTALL README.FAQ README.configure ${destroot}${prefix}/share/doc/${name}
    xinstall -m 644 -W ${worksrcpath}/doc/etc rxvt-unicode.termcap rxvt-unicode.terminfo ${destroot}${prefix}/share/doc/${name}/etc
}

platform darwin {
    post-destroot {
        xinstall -m 755 -d ${destroot}/usr/share/terminfo
        system "TERMINFO=${destroot}/usr/share/terminfo /usr/bin/tic ${worksrcpath}/doc/etc/rxvt-unicode.terminfo"
    }
}

variant color256 description {Applying 256color patch} {
    post-patch {
        cd ${worksrcpath}
        system "patch -p1 < doc/urxvt-8.2-256color.patch"
        system "patch -p1 < doc/wcwidth.patch"
    }
}

zsh, screen, vim

これらは既にインストール済みだったけど,zshはPrivatePortfile/Zsh-devel - MacPortsWiki-JPからPortfileをとってきて,sudo port install zsh-devel +doc +mp_competion +pcre +utf8とか.screenはMac標準で入ってるのがバグってる(?)らしいので,sudo port install screenする.vimは sudo port install vim +huge +perl +python +ruby とか.

設定ファイルいろいろ

なんかいろいろ増えた.urxvtは.Xdefaultsに設定を書くらしい.とりあえず以下のようにしてみた.フォントはM+ と IPAフォントの合成フォントにからもらってきたフォント.

URxvt.termName: rxvt-256color
URxvt.foreground: White
URxvt.background: Gray10
URxvt.saveLines: 20000
URxvt.scrollstyle: rxvt
URxvt.scrollBar_right: true
URxvt.geometry: 100x35
URxvt.shading: 10

URxvt.font:\r
    xft:M+2VM+IPAG circle:size=14:antialias=true, \r
    xft:Hiragino Maru Gothic Pro, \r
    xft:Monaco
URxvt.boldFont:\r
    xft:M+2VM+IPAG circle:bold, \r
    xft:Hiragino Maru Gothic Pro:bold, \r
    xft:Monaco:bold
URxvt.italicFont:\r
    xft:M+2VM+IPAG circle:italic, \r
    xft:Hiragino Maru Gothic Pro:italic, \r
    xft:Monaco:italic
URxvt.boldItalicFont:\r
    xft:M+2VM+IPAG circle:italic, \r
    xft:Hiragino Maru Gothic Pro:italic, \r
    xft:Monaco:italic

Xft*antialias: true

kinput2でShift + Spaceでトグルするのをやめたかったので,.Xresourcesを以下のようにした見た.こうするとCommand + Spaceでだけトグルするようになる.

kinput2*ConversionStartKeys: Mod2<Key>space

日本語キーボードで「英数」や「かな/カナ」キーでもスペース入力になるのが鬱陶しかったのと,円マークキーでバックスラッシュを入力するために.Xmodmapを以下のようにした.ちなみにxevコマンドでキーコードが調べれた.

keycode 101 = backslash bar yen bar
keycode 110 = 
keycode 112 = 

cannaのトグル用キーバインドを無効にするために Beginning OS X 10.5/運用編 - Beginning OS Xを参考に,.cannaを作ったあと,最後に以下の内容を追加した.

(global-unbind-key-function 'japanese-mode)
(global-unbind-key-function 'alpha-mode)

それから,iTermのときはタブ大好きだったけど,urxvtにはタブがないので,過去に5回ぐらいトライしたものの挫折したscreenに再挑戦.とりあえず,.screenrcは以下のようにしてみた.まだあんまりよくわかっていない.

autodetach on
zombie "q^M"
startup_message off
vbell off
escape ^Jj
defscrollback 10000

defutf8 on
defkanji utf-8
encoding utf-8 utf-8
defencoding utf-8

# 表示
bell_msg "Bell in window %."
activity "Activity in window %."

# タブっぽい表示
# hardstatus alwayslastline "%{= wk}%-Lw%n%f* %t%{= wk}%+Lw %= %y/%m/%d %c "
hardstatus on
hardstatus alwayslastline
hardstatus string "%-w%{=b}%n %t%{-}%+w"

# ターミナルのサイズ変わるの防止
# Aborted because of window size chage
# を防止できるらしい
termcapinfo xterm* 'is=E[rE[mE[2JE[HE[?7hE[?1;4;6l'

defbce "on"
term rxvt-256color
shell zsh

bind U eval "encoding utf-8" "!!!echo 'export LANG=ja_JP.UTF-8'"
bind E eval "encoding euc" "!!!echo 'export LANG=ja_JP.EUC-JP'"
bind s colon "screen ssh"

X11.appの設定

Beginning OS X 10.5/運用編 - Beginning OS Xを参考に,zsh用に以下のようなurxvt-helperをでっちあげて,/usr/local/bin に設置した.

#!/opt/local/bin/zsh --login
export XMODIFIERS="@im=kinput2"
/opt/local/bin/urxvt

そんでもって,defaults write org.x.X11 app_to_run "/usr/local/bin/urxvt-helper" とした.X11アプリケーションメニューも同様にセットしといた.

感想とか

たぶんこれでやったことをだいたい全部書いたと思うけど,いろいろ手順が多い上に試行錯誤してたので,網羅できてるかわかりませんorz

で,実際にしばらくurxvt + screen + zsh + vim をしてみたところ,本当にiTermに比べて圧倒的にさくさく動いた.心配していたscreenもなんとか基本操作ぐらいは手になじんできた.エスケープキーをCtrl-Jとか押しやすいところにしたのと,colonやrollbackの使い方をやっとこさ覚えたのが良かったと思う.

とりあえず,プログラム書くときはしばらくはメインはこの環境でやってみたいと思った.ただ,やっぱり日本語入力がしんどいので結局この文章はiTerm.app + Vimで書いている.

問題点

いかんせんX11経由なので,標準のことえりやらATOKが使えないのが痛い.【コラム】OS X ハッキング! (274) 6月まで待てない! あの「Wine」を試飲する(2本目) | パソコン | マイコミジャーナルによると,Leopardでもkinput2.macimが使えるみたいだけど,手元の環境ではうまくいかなかった.

Vimの256色表示はうまくいくけど,ls -Gとかして,カラー表示するときに以下のメッセージが出る.ちょっと調べ切れていない.

"TERMCAP", line 20, col 1, terminal 'SC': Illegal character - '^J'
"TERMCAP", line 20, col 1, terminal 'SC': wrong type used for string capability 'kE

何か間違っている点や,抜けている点,もっとこうした方がいい!とかその他何かあれば教えて下さい.

2008/09/29 19:17 | Mac | トラックバック(0) | コメント(0)

ページの先頭へ

iPhoneのSafariでマルチタッチを試してみた

せっかくiPhoneを買ったので試しにSafariで遊んでみる.ke-tai.orgの以下の記事を参考に,YouTubeのムービーと同じようなのを作ってみた.

iPhone/iPod Touchで見て下さい

とりあえず,わりと簡単にマルチタッチイベントを取れたので,あとはアイデア次第かなぁ.

2008/09/23 03:25 | iPhone | トラックバック(0) | コメント(0)

ページの先頭へ

errormarker.vimでflymakeるために調べてやってみた

errormarker.vim で flymake(Emacsの) る - 8時40分が超えられない - subtechを見て自分もやってみようかと思ったけど,そもそもVimのmakeやcompilerの使い方が分かってなかったのでちょっとだけ調べてみた.あとflymakeがあんまりよく分かっていない.ファイル保存時にsyntaxエラーをハイライトしてくれたらflymakeできてることになってるのだろうか?

まず,errormarker.vimの中身をのぞいてみたところ,QuickFixCmdPost(makeのあと?),getqflist()して,その情報から:signしているみたい.要するに,QuickFixの情報を元にハイライトやらしてるということ.

で,:makeした後に出てくるQuickFixの内容は,makeprg,shellpipe,errorfileとかに設定されたコマンドの実行結果をerrorformatでパースした結果のようだ.

そして,Vimにはデフォルトでいくつかの言語についてはmakeprgやらerrorformatやらの設定が$VIMRUNTIME/compilerに用意されていて,.vim/compilerとかに追加することもできて,例えばPHPの場合は:compiler phpとかで設定できるようになっている.

というわけで,PHPでflymakeしようと思ったら,.vim/ftplugin/php/flyquickfixmake.vimに以下のように書いておけばよい.Rubyの場合は,

sudo gem install vim-ruby
ruby vim-ruby-install.rb

してから.JavaScriptは,

sudo port install javascript-lint

してから,やってみたらそれっぽくなった.

JavaScriptも.vim/compiler/javascript.vimあたりに設定を分離すれば,全て同じような感じになるので,もっと簡単に設定書けそうな気もする.というか,QuickFixの仕組みとerrormaker.vimがよくできているので,最終的にはVimはautocmd BufWritePost * silent make %と書けばflymakeになるよ!ということにならないだろうか?あんまりよく分かってないのであれだけど(^-^;)

2008/07/30 19:38 | Vim | トラックバック(0) | コメント(0)

ページの先頭へ

MacのVimでシステムのクリップボードとやりとりする

.vimrc - 素人がプログラミングを勉強するブログというエントリで,pbcopyを使ったシステムのクリップボードとのやりとりについて書かれていたので,偉そうにコメントさせて頂いたのだが,気になったのでもう少し調べてみた.

さきほどのエントリのコメント欄に書いたのは,vim pbcopy - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtechにて紹介されていた方法なのだけど,再度確認してみると,__CF_USER_TEXT_ENCODINGをUTF-8に設定する方法が紹介されていた.さらに調べていくと,Mac OS X clipboard sharing - Vim Tips Wiki - a Wikia wikiというページを見つけて,最終的には以下のgistに置いたコードのようになった.単にgistを使ってみたかっただけです(^-^;)

:help :wとか:help :rとかしてはじめて知ったのだが,:w !{cmd}でコマンドの標準入力に渡す,:r !{cmd}でコマンドの標準出力を受け取ることができる.また,__CF_USER_TEXT_ENCODINGとVimのencを合わすことによって文字化けしなくなる.また,自分で確認したものでは,MacVimやらKaoriya版GVimでは,"+yおよび"+pでシステムのクリップボードとやりとりできるので,Macかつ非GUIのときにpbcopyを使ってそれ以外は"+yを使うようにしている.

ところで,gistでコードスニペットを共有しつつ,バージョン管理までできてしまうのはかなり便利だと思った.あとは,ブログパーツのような感じで自分のブログに貼り付けることができれば,面白いのになぁと思った.今後に期待! 追記(2008/7/26): と思ったら,貼り付けられるようになってる.それとも見落としてたかなぁ(^-^;)

2008/07/23 12:48 | Vim | トラックバック(0) | コメント(1)

ページの先頭へ

前のページへ << トップページへ >> 次のページへ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。