トップ «前の日記(2007-02-08) 最新 次の日記(2007-02-10)» 編集

じじぃの日記、ツッコミ可

Twitter: @jijixi_org
Xbox Live: jijixi

初心者が書いた OCaml 入門
Spotlight tips サイト内リンク集
1970|01|02|
2003|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|11|
2011|05|
2012|01|

2007-02-09 [長年日記]

% [PC] 超今さらだけど Windows PowerShell を入れてみた

どうせ command.com に毛が生えたようなもんでしょ? と馬鹿にしてたんだけど、結構楽しいね、これ。 まあ、純粋にシェルとしての機能を気にするなら Cygwin で zsh 使ってれば良いんじゃないかと思うけど、PowerShell 独自の機能がおもしろい。 特に PSDrive 。 エイリアスとか関数とか変数とかレジストリとか、そういうもろもろをファイルシステムのように扱うことができる。

こういうのって、キャラクタベースのシェルだけじゃなくエクスプローラとかでも使えて欲しいけどなあ。 もしかして Vista ってそういう機能あるんだろうか?

% [Mac][objc] うーん、そうすると、ここら辺の話なのかな

ささださんからツッコミ貰ったんだけど。 上記の文書にだいたい Cocoa 的お作法みたいなのは網羅されてる感じかな。 翻訳されたものもあったような気がするんだけど見付けられなかった。

ぶっちゃけ、わしは Cocoa アプリケーションをちゃんと作ったことなんて無いので、偉そうに語る資格は無いんだけども、聞きかじりのにわか知識で書くと……

  • AppKit.framework を利用している場合、イベント処理メソッドを呼び出すときには自動的に NSAutoreleasePool のインスタンスを用意してくれるので、プログラマは NSAutoreleasePool のことは意識する必要が無い。せいぜい必要に応じてオブジェクトに autorelease メッセージを送っておくだけ。
  • Appkit のお作法に則らない処理をする場合は自前で NSAutoreleasePool のインスタンスを用意する (参考)
  • アクセサなんかは、返り値に retain と autorelease を送ってから返してやるのがお作法 (参考)。たぶんささださんが想像してたのは、この話?
  • 自分で作ったオブジェクト (alloc とか new とか copy とか付いたメソッドで返ってくるのがそう) や、自分が retain メッセージを送ったオブジェクトに対しては、責任を持って release なり autorelease なりを送るべし。(参考)

こんな感じでやってるみたい。 Objctive-C ってかなり動的な言語なんで、どうしても規約ベースな開発手法になっちゃうんだと思う。 でもリファレンスカウンタのおかげで、「誰がどこで free してるか」とか気にせずに、その都度自分の責任範囲だけでオブジェクトの解放 (するつもり…という意思だけだけど) が完結できるから、C++ なんかよりは全然楽だと思う。 まあ、自動変数にオブジェクトの実体を保持できないのが不便と言えば不便だけど、それを補うために NSAutoreleasePool ってものがあるわけで。

ちなみに Mac OS X 10.5 で採用される Objctive-C 2.0 には GC が付いてくるみたいなんで、もっともっと楽になるでしょう。

% [Emacs] なんか微妙にハマり始めてる自分がちょっとイヤ

向井さんが色々教えてくれたりしたんで、ちまちまいじってるうちに何だか妙に楽しくなってきてる自分がいるよ。 なんかあれだよね、設定ファイルいじるのは Vim より Emacs の方が楽しい気はするよね。

……まあ、依然として .emacs いじるときに使ってるのは Vim だったりするんだが(苦笑

設定をいじるのは楽しいかもしれないけど、エディタとしてはやっぱり Vim から離れられるとは思えないな。 もう完全に脳味噌が Vim に最適化されちゃってるし (vi に…じゃないところが結構ポイント)。 vi-mode とやらを入れたとしても、Vim 相当にはならんだろうしなあ…… って、今見たらすでに vi-mode って入ってるのか。 うーん、せっかくだからしばらくいじってみるかな。

それにしても、つい最近まで (上下左右と行頭行末を除いては) C-x C-c しかコマンド知らなかったのに、それに比べると随分進歩したなあ。 これまでに憶えたコマンド↓

  • C-x C-f でファイルを読み込む
  • C-x o でウィンドウを切り替える
  • C-M-f で vi の w (微妙に違うけど感じとしてはそんな風味)
  • C-M-b で vi の b (同上)
  • M-x hoge でなんか関数呼び出し
  • C-Space → カーソル移動でリージョン選択 (Vim の visual モードのノリで領域選択したあと ex コマンド入力したくなるけど、できないからストレスが溜まる)

たった数日で知識量が 7 倍にも膨れ上がりました!!(ぉぃ

いやいや、ほんとすごい進歩だよ。 なんせわし、zsh 使っててもちょっとややこしいコマンドライン編集になると、すぐ esc 叩いて vi モードに入るくらいの人間だから (キーバインドは基本 vi で emacs モードの一部を追加してある仕様)。 tcsh の vi モードは微妙すぎるけど、zsh の vi モードは結構本格的に vi だから好き。

それはそれとして、Emacs いじってると小指が破壊されそうになる。 これは何と言うか、skk を使い始めた頃の感覚。 Vim だと Ctrl キーなんてそんなに押さないしなあ。 や、素の vi に比べれば遥かに押す機会が多いとは思うけど、カーソル移動にまで Ctrl キーが必要なのはさすがにツラい。

% [Emacs] vi-mode 役に立たねー

なんじゃこりゃ、vi ユーザをバカにしてるのか(笑

特に ex コマンドが使えないんじゃ意味ないなー。 とりあえず ex コマンドを入力しようと思ってコロン入力したら表示される tips が、それなりに役に立つかも。 以下丸写し。

Ex commands are not implemented in Evi mode.  For some commonly used ex
commands, you can use the following alternatives for similar effect :
w            C-x C-s (save-buffer)
wq           C-x C-c (save-buffers-kill-emacs)
w fname      C-x C-w (write-file)
e fname      C-x C-f (find-file)
r fname      C-x i   (insert-file)
s/old/new    use q (vi-replace) to do unconditional replace
             use C-q (vi-query-replace) to do query replace
set sw=n     M-x set-variable vi-shift-width n

そうそう、こういう対応表みたいなのが欲しいんだよな。 これのもっと詳しいようなやつって、どっかに無いもんかねえ。

% [雑談][clip] セガ、「バーチャスティック ハイグレード」の一部不具合を発表。販売中止に−−販売済み製品は返金・返品対応 (ITmedia +D Games)

最近のセガはこんなんばっかだな。 金取ってベータテストやらせるようなゲーム作ってる空気が、ハード部門にまで伝染したのか?

本日のツッコミ(全1件) [ツッコミを入れる]
% Hiro (2007-02-10 01:43)

viのw,bに近いのはM-f, M-bかも。<br>C-M-f, C-M-bはviの%に似た動きもします。

お名前:
E-mail:
コメント:

トップ «前の日記(2007-02-08) 最新 次の日記(2007-02-10)» 編集

日記ってのは本来、自分で読み返すためにあるもんだよなあ……
もしくは有名人になったら死後に本になったりとかか?

RSS はこちら

jijixi at azito.com