Development Environment Conferenceに行ってきました

昨日の感想とかいろいろ読みたいので blog に書いた人は Shibuya.js のページなりこのエントリなりにトラックバックしていただけると大変嬉しいです。

とのことなのでトラックバックしてみました。普通に書いてもアレなので、リンクでも張りながら書いてみます。読み難かったらごめんなさい。

シェル

Shellは多くの環境でのデフォルトであるbash(Bash - GNU Project - Free Software Foundation)を使っています。別にbashが好きとかzsh(Zsh)が嫌いとかそういうことはないです。ちなみにbashでも

complete -A hostname ssh

sshの引数に/etc/hostsから引いたホスト名が補完できます。それbashでもできるよ。bashでどうやるかはきいてねーよ。
zshのcwdがスタックに積まれる機能はすごく欲しいので、これだけのためにzshを入れようかと思っているのは内緒です。

なお、bashは小学生までだそうです。σ(゚∀゚ ∬オレ小学生!

バージョン管理ツール

現在二つの会社に籍を置いているのですが、片方はCVS(CVS - Open Source Version Control)、 もう片方は日本ではCVS、L.A.ではSubversion(subversion.tigris.org)といった感じなので、CVSSubversionを混在利用しています。
svkはネット環境が無いところにあまり行かないので無視していましたが、オンラインでも便利だよみたいなことを聞いたので早速使ってみようと思います。

なお、CVSは小学生までだそうです。σ(゚∀゚ ∬オレ中学生ぐらい?

端末

端末にはputty(PuTTY: a free SSH and Telnet client)もTera Term(Tera Term Home Page)も使っていません。Ck(http://www.geocities.jp/cygwin_ck/)を使っています。Ckは、文字コードが同一画面に混在していても自動判別して表示してくれるのがとても素敵です。また、タブ型では無いですが複数バッファが持てる端末で、操作感はPoderosa(http://ja.poderosa.org/)よりは良いと思います。C-S-nで新しいバッファを開いて、C-Tab/C-S-Tabでバッファを切り替えながら使っています。そういうこともあってか、Screen(Screen - GNU Project - Free Software Foundation)も使っていません。

エディタ

Emacs(GNU Emacs - GNU Project)ユーザです。と言いながらMeadow(http://www.meadowy.org/meadow/)使っています。NTEmacs(Emacs FAQ for MS Windows - GNU Project - Free Software Foundation (FSF))が使い物になるようになってきたと聞いたので試してみよう、と思いつつ放置中です。
秀丸(秀まるおのホームページ(サイトー企画)−秀丸エディタ)は使っていませんが、メモ帳の代わり使うという意味でTeraPad(URL変更のお知らせ)を使っています。

プログラムを本格的に書くのはEmacsです。プログラムをちょこっと修正したり、設定ファイルを書いたり、SVN/CVSのコミットログを書くのはvim(welcome home : vim online)です。READMEとかを読むのは端末内ではlessかvimで、端末外ではTeraPadです。

viでリモート編集ができるとの紹介がありましたが、Emacs/Tramp(Emacs/Tramp - remote files via shell download | SourceForge.net)を使っているので、それEmacsでできるよ。Emacsでどうやるかはきいてねーよ。

EmacsdabbrevはM-/です。Visual Studioか何かのEmacsバインドのデフォルトだった気がしますが失念。C-o(open-line)は行間を開けるのによく使うので、他に回すことができません。C-t(transpose-chars)もたまに使いますので同様です。

その他

  • キーボードは、既に販売終了になっていますがHappy Hacking Keyboard Lite 日本語配列 PS/2 黒(Happy Hacking Keyboard | PFU)を使っています。Windowsキーは、XKeymacsのキーボードレイアウトを使ってHHKの半角/全角キーの場所に割り当てて、Fnを使わずにワンキーで押せるようにしてあります。半角/全角キーは殺しています。日本語入力はC-\を使うので半角/全角キーは不要です。
  • いつもテストドリブンです。
  • dotファイルは、昔は~/etcにまとめておいてsymlinkしていましたが、今は~/をそのままCVS管理しています。ただこれだとstatus=?なファイルが増えてしまうので、戻そうかと思っていたところでした。~/cを例外なくバージョン管理ってのはよさげなので、色々考えてやり直すつもりです。
  • ack(App::Ack - metacpan.org)はホントに便利です。grepと同じように検索文字列に正規表現も使えて、-iで大文字/小文字の違いを無視したり、-hで余分な情報を排除したりできます。おススメ。

その他

id:naoyaさんが想像以上にかっこよかったです。どんな想像をしてたんだ、と。ソッチの気はありません。

「枯れたツール→覚えるの大変→使いこなせれば便利」に激しく同意。フィルタのようなパイプでつなげていけるコマンドラインツール群や、ちょっとしたシェルスクリプトを覚えると作業効率は格段に上がります。また、U*NIXなコマンドを知っていれば

$ talk ; talk ; cd ; unzip ; strip ; touch ; grep ; finger ; mount ; fsck ; more ; yes ; umount ; sleep

といったジョークも分かるようになります(だから何)。

自分の開発環境は気が向いたときに徐々に紹介していきます。お前の開発環境はきいてねーよ。とか言わないでください。