xcode4 (4.4.1) ショートカット

久しぶりに xcode 触ったらヘッダとソースの表示切り替えができなくて焦った。(^_^;
というわけで、普段自分が使うショートカットをメモ。
ヘッダとソースの表示切り替えは、前の xcode から変更されているような気がするなぁ~

ビルド Cmd + b
プログラム起動 Cmd + r
プログラム停止からの継続 Control + Cmd + y
ヘッダ、ソースの切り換え(.h .m) Control + Cmd + ↑
ファイル ナビゲータを表示する Cmd + 1
検索ナビゲータ Cmd + 3
問題ナビゲータ(エラー) Cmd + 4
デバッグ ナビゲータ Cmd + 5
ブレイクポイント Cmd + 6
ファイル内検索 Cmd + f
プロジェクト内検索 Cmd + Shift + f
定義へジャンプ Cmd + クリック
戻る、進む Control + Cmd + ← / →
選択行をコメント Cmd + /
Undo Cmd + z
インデント戻す(右へシフト) Cmd + [
インデントする(左へシフト) Cmd + ]
指定行へジャンプ Cmd + l
フォーカス切り替え Cmd + j
デバッグ エリアの表示、非表示 Cmd + Shift + y
変数名を一度に変更する Control + Cmd + e
表示しているコードをプロジェクトナビゲータで選択表示 Shift + Cmd + j

Mountain Lion ターミナルで文字化けする場合に確認する点

先日 lion から Mountain Lion へアップデートし、新規にプロファイルを作成して利用していたターミナルでコマンドライン版 vi が日本語文字確定時に文字化けするという現象に悩まされていたが、解決したのでメモしておく。

日本語文字確定時になぜか文字化けする原因は、以下の”Control + V で非 ASCII 入力をエスケープ”がチェックされていたことが原因だと判明した。

いつチェックしちゃったんだろう?
取りあえず、すっきりした。

Git について

git についてよく分かっていなかったので、調べてみた。
よく分からなかった原因は、git 特有の概念、用語などにあったと感じていたので、以下にまとめた。

概念については以下の資料を参照するのがいい。

git – 簡単ガイド 猫でもわかるGit 最初の一歩
Git – Book

用語についても、以下にまとめた。
origin, master, head とかよく意味がわかんなかったけど、少しすっきりした。

リポジトリからクローンして、コミットするまでのコマンドについてもまとめたので、
あとは実際の経験からの得られる知識を蓄積していけば OK でしょう。
改めて、ブランチって便利だなと感じたので、積極的に使っていきたい。^_^

インストール

macport でインストールする場合

$ sudo port install git-core +gitweb +svn

設定について

~/.gitconfig
特定のユーザーに対する設定値を保持する。
–global オプションを指定することで、明確にこのファイルの読み書きを行う。

/etc/gitconfig
システム上の全てのユーザーと全てのリポジトリに対する設定値を保持する。
–system オプションを git config に指定すると、明確にこのファイルに読み書きを行う。

現在使っている、あらゆるリポジトリの Gitディレクトリ設定ファイル ( .git/config )
特定の単一リポジトリに対する設定値を保持する。
それぞれのレベル値は以前のレベル値を上書きするため、.git/config 中の設定値は /etc/gitconfig の設定値に優先される。

.gitignore
無視させたいファイルのパターンを保持したファイル。
.gitignore ファイルに記述するパターン規則は、以下の通り。

空行あるいは # で始まる行は無視される
標準の glob パターンを使用可能
ディレクトリを指定するには、パターンの最後にスラッシュ (/) をつける
パターンを逆転させるには、最初に感嘆符 (!) をつける

1
2
3
4
5
6
# コメント行
*.a       	# .a ファイルは管理対象外とする
!lib.a    	# しかし、lib.a ファイルだけは .a であっても追跡対象とする
/TODO           # ルートディレクトリの TODO ファイルだけを対象外とし、サブディレクトリの TODO は対象外としない
build/    	# build/ ディレクトリのすべてのファイルを対象外とする
doc/*.txt 	# doc/notes.txt は無視しますが、doc/server/arch.txt は無視しません

xcode 用の gitignore

1
2
3
4
5
6
7
8
9
10
11
12
.DS_Store
*.swp
*~.nib
build/
 
*.pbxuser
*.perspective
*.perspectivev3
 
#!xcuserdata/
#*.xcuserstate
UserInterfaceState.xcuserstate

用語について

リポジトリをクローンする
Git リポジトリをコピーすること。
Subversion などの checkout と意味が違うことに注意。
Git は、サーバーが保持しているデータをほぼすべてコピーする。
そのプロジェクトのすべてのファイルの全履歴が、git clone で取得することができる。

リポジトリをクローンするには git clone [url] とする。
例えば、Ruby の Git ライブラリである Grit をクローンする場合は以下のようにコマンド入力する。

$ git clone git://github.com/schacon/grit.git

ステージング・エリア
Gitディレクトリに含まれる、次のコミットに何が含まれるかという情報。

origin サーバー
クローン元のサーバーに対して Git がデフォルトでつける名前。

master ブランチ
クローンした地点でこのブランチ名とサーバー名が自動設定される。

HEAD ポインタ
作業中のブランチを指し示す特別なポインタ。
Git では、HEAD は作業しているローカルブランチへのポインタとなる。

git clone
git clone コマンドはローカルの master ブランチが、(取得元サーバーの) リモートの master ブランチを追跡するよう自動設定する。
リモートに master ブランチが存在することを前提としている。

git pull
通常は最初にクローンしたサーバーからデータを取得し、現在作業中のコードへのマージを試みる。

リベース
一方のブランチにコミットされたすべての変更をもう一方のブランチで再現する。

コマンド入力について

設定を確認する方法
$ git config –list

変更を確認する方法
$ git status
$ git diff
$ git diff –staged

git で管理するファイルをコミットする

1
2
3
$ git init					# 既存ディレクトリでのリポジトリの初期化
$ git add *.c					# 管理するファイルを追加する
$ git commit –m 'initial project version'	# コミットする

ステージングエリアの準備ができたら、変更内容をコミットすることができる。
コミットの対象となるのはステージされたものだけ、つまり追加したり変更したりしただけで
git add を実行していないファイルはコミットされないことに注意。

$ git commit -a -m '...'
$ git pull origin master マスタの改変を取り込む
$ git branch 現在のブランチを確認する
$ git checkout (ブランチ名) ブランチを切り換える
$ git status コミット残があるか判断する
$ git add (ファイル名) ファイルを追加する
$ git merge (ブランチ名) ブランチをマージする
$ git push origin master originサーバのmasterブランチへpushする

ファイルを削除、変更する方法

$ git rm ファイル名 ファイルの削除がステージされる
$ git rm -f ファイル名 ステージされているファイルを削除する
$ git rm –cached ファイル名 ファイルをステージから削除するのみ
$ git mv file_from file_to ファイル名を変更する (ステージから削除し、新しいファイル名でステージしてくれる)

直近のコミットを修正する方法

$ git commit –amend 直近のコミットを変更

直近のコミットを修正するには以下の様にコマンドを入力する。

1
2
3
$ git commit -m '初期コミット'
$ git add 忘れてたファイル
$ git commit --amend

ログを参照する方法

$ git log ログの閲覧
$ git log –p -2 -p で各コミットの diff を表示し、-2 で直近の 2 エントリだけを出力する
$ git log –pretty=format:”%s” –graph ログをグラフィカルに出力する
$ git log –oneline ログを1行ずつ出力する

タグをつける方法

$ git tag タグの一覧表示
$ git tag -a v1.4 -m ‘my version 1.4’ 注釈付きのタグを指定する
$ git show v1.4 タグの参照

ブランチを操作する方法

$ git checkout testing ブランチを testing へ切り換える
$ git checkout -b iss53 ブランチ iss53 を作成して、切り換える
$ git checkout master ブランチを master へ切り換える
$ git merge hotfix ブランチをマージする
$ git branch -d hotfix ブランチを削除する

submodule を更新する方法

$ git submodule foreach ‘git checkout master; git pull’ すべてのサブモジュールを更新する

os x mountain lion (10.8) に Eclipse Juno 4.2 をインストールする方法

開発環境を新しい mac にセットアップするたびに手順を忘れているので、メモしておく。
今回は、Pleiades 本体 (安定版 1.3.4) を適用するのを忘れていて少し手こずった。(ノД`)
あと、readme_pleiades.txt には丁寧な情報があるのでみた方が良いですね。

1. eclipse をダウンロードする
eclipse_download

2. “日本語 Eclipse Pleiades All in One 日本語ディストリビューション”をダウンロードし、適用する

pleiades_all_in_one

64bit JRE なし Ultimate (pleiades-e4.2-ultimate_20120727.zip) をダウンロードする
“日本語 Eclipse Pleiades All in One 日本語ディストリビューション” の “dropins” フォルダ配下を eclipse にコピーする

3. Pleiades 本体 (安定版 1.3.4) をダウンロードし、適用する

pleiades_1.3.4.zip を解凍し、plugins、features フォルダを ECLIPSE_HOME ディレクトリーにコピーする

4. eclipse.ini を編集する
Eclipse.app を “パッケージの内容を表示” する
Contents > MacOS > eclipse.ini に以下の設定を追記する

readme_pleiades.txt より抜粋

1
2
3
4
5
6
7
8
9
10
11
12
13
14
◆方法 1: eclipse.ini 最終行に以下の指定を追加
 
* Windows での設定例
 -javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
 
* Mac OS での設定例
  Mac OS では  eclipse.ini は Eclipse.app/Contents/MacOS/ にあります。
  また、後述の no.mnemonic オプションは自動的に有効になります。
 
  相対パスで指定する場合
 -javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
 
  絶対パスで指定する場合
 -javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

5. 初回のみ eclipse を クリーン起動する
/Applications/eclipse/eclipse -clean

(追記)
2013/04/16現在、以下のセットでも動作することを確認した
eclipse-jee-juno-SR2-macosx-cocoa-x86_64.tar
pleiades-e4.2-ultimate_20130303.zip
pleiades_1.4.0.zip

mac でコピーする場合、上書きではなく結合(マージ)でコピーされているか注意すること。