2012年10月29日月曜日

vim on Mac: 全角記号(□とか○)がずれないようにする

MacのTerminal.appでvimを使っていると、□や○などが半角の幅で表示されてしまいます。

対策が分かりましたのでメモしておきます。

OS X Mountain Lionでは対処が簡単で、Terminal.appの環境設定画面の「詳細」タブで
「Unicode 東アジア A(曖昧)の文字幅を W(広)にする」
にチェックを入れるだけです。

結果はこの通り。

Mac OS X Lion 以前ではこの項目がないそうです。手元にLion以前がありませんので確認していませんが、SIMBLプラグインTerminalEastAsianAmbiguousClearerを導入すればいいみたいですね。

2012年10月22日月曜日

【Git】削除したことをindexに登録する

Gitを使っていて面白い挙動に出会ったのでメモ。

シチュエーションとしてはこんな感じ。

  1. ファイル"foo"を少し編集して、OSのコマンドで"bar"にリネームした。
  2. git add bar
  3. git rm foo


1の直後は、fooが削除されたことになっているが、もちろんfooが削除されたことはインデックスには登録されていない。すなわちコミット対象ではない。
# Changes not staged for commit:

# deleted:    foo

そして、当然barはトラックされていない。
# Untracked files:
# bar

2の直後は、barが新規に追加されたことになっている。インデックスにaddされたので、barはコミット対象である。
# Changes to be committed:
# new file:   bar

3の直後は、fooがbarにリネームされたことになっている!(ここが面白いと思ったところ)
# Changes to be committed:
# renamed:    foo -> bar


以前先輩と実験したときも、Gitのリネーム判断は結構面白い挙動をするなあという印象だった。本当に名前を変えたのか、削除して新規作成したのかにかかわらず、ファイルの内容の類似度でリネームかどうかを判断しているらしい。