前回の記事で正規表現の検索ができたので、Xcodeが好きになりました。すごく便利です。あとは選択範囲だけの置換をショートカット使ってできればしばらくXcodeで開発するのもいいのかなぁと思い始めてます。
すこし検索が便利になったので、今度は置換も少し便利にしておきたい。Xcodeを解説しているところをみると、置換文字列に改行とかタブを入れるときはコピペで入力すると書かれているのですが、いちいちコピペしないでも入力できる方法があったりします。それは。。。
- Option + TAB = タブ
- Option + Enter = 改行
置換文字列を入力するときにOptionを同時に押すだけで、置換文字列にタブとか改行を入力できるようになります。
ファイル内検索で正規表現を使えるのを知らなかったのが、恥ずかしすぎる。。。。。というわけで、Xcodeの記事 2連発でした。まだまだ知らないことがいっぱいです。Xcode、奥深しっ!!
でわでわ、たかともでした。
いままで何をやってたんでしょうか。Xcodeのファイル内検索がパネルで表示されていたときには正規表現で検索できたのに、検索パネルから検索バーに変わってから正規表現で検索できなくなったのか><とおもってがっかりしていたのです。
。。。すみませんでした。Apple様っ!!
というわけで、方法をメモ。
検索パネルでサーチバーの左にあるアイコンをクリック。
正規表現をチェックする。

Xcodeを使い始めて、6年ぐらい、まったく情けない。
「できないっ!!」って結論を出す前にきちんと探しましょう♪
ではでは、たかともでした。
動画の拡張子を手動で変更するのがめんどくさくって、作ってみました。
使い方はアプリケーションアイコンをクリックするとファイル・フォルダを選択するウィンドウがでてくるので、ファイル・フォルダを選択してあげるだけで自動的にflvからmp4に拡張子を変更してくれます。
変更が簡単にできるようにワークフローのファイルも同梱しています。
フォルダを再帰的に検索することはしていませんが、ワークフローファイル内の「フォルダの内容を取得」で「見つかった各サブフォルダからも取得」にチェックを入れれば再帰的に検索することもできるはずです。お好みで変更してください。
またシェルスクリプトの部分だけを取り出して、フォルダアクションやサービスメニューとしてつかってあげるのもおもしろいかな??ただフォルダアクションで使うと拡張子が変更される際にフォーカスをとられるので、注意が必要になります。ビバ、Automator♪
ダウンロードはこちらから
でわでわ、たかともでした。
注意:ファイルの拡張子だけを変更しているだけなので注意してください。
拡張子flvをmp4に変更する利点
flvのファイルは映像: H.264で音声: AACのファイルをflvでくるんでいるだけということが多いので、拡張子を変更するだけでQuickTimeでみたり、QuickLookができるようになったりします。あとはCoverFlowで表示させることができたり、FrontRowで再生することができるようになったりするのもうれしかったりします♪
まさかこんな簡単にダウンロードができるようになるとはっ!!
「http://hogehoge.com/hogehoge.pdf」のようにリンクが貼られていないファイルをダウンロードするときってどうしていますか??意外とめんどくさいんですよね。右クリックしてもファイルを保存ってメニューがでてこないので、くぁぁってなります。そんなときに使える簡単ダウンロード方法を見つけました〜。
方法はものすごく簡単。
- Safariでダウンロードウィンドウを開く。(Command + Option + L)
- ダウンロードしたいファイルのあるURLを選択する。
- ダウンロードウィンドウにドラッグ&ドロップ
ただこれだけでよかったんです。いちいちターミナルを開いてwgetしなくっても、curlしなくっても、ぽいっぽいっといれていくだけでダウンロードができたんです。ダウンロードするのにめんどくさいことなんてなんにもなかったんです。「リンクしないのかっ!!」ってツッコミをいれなくってもよかったのですっ!!
。。。。いままでの苦労はいったい。
ターミナルにドロップするはずが、たまたまダウンロードウィンドウにドロップしてしまって見つけたとか、まさに運命の出会いですね。
ぜひ使ってみてくださいね。ツッコミしてる場合じゃないですよ?!
でわでわ、たかともでした。
EmacsからVimに乗り換えるきっかけになったプラグイン。
cocoa.vim
Vimで開発するときには必須のプラグインです。
- C-x C-o or F2 = オムニ補完
- Command + Option + ↑ = ヘッダーファイルと実装ファイルの切り替え
- Command + 2 = メソッド(関数)のリスト表示
- Command + 0 = Xcodeで開く
- ノーマルモードで K = カーソルの下の単語をドキュメントから検索
このあたりはXcodeにはできるけど、Vimにはない機能をうまく補ってくれます。
が、
- Command + R = ビルドしてXcodeに移動する
- Command + B = ビルド
- Command + shift + K = クリーン
Xcodeを使って手動でビルドしてあげると問題ないプロジェクトでも、このあたりの機能を使おうとするとなぜかXcodeがエラーをはいてました。いろいろ調べていたのですが解決方法を二つほどみつけたので紹介します。
その1: AppleScriptでショートカットを直接たたく。
~/.vim/ftplugin/objc_cocoa_mappings.vimを以下の通りに変更します。
削除、もしくはコメントアウトする部分
34行目~36行目
nn <buffer> <silent> <d-r> :w<bar>cal<SID>BuildAnd('launch')<cr>
nn <buffer> <silent> <d-b> :w<bar>cal<SID>XcodeRun('build')<cr>
nn <buffer> <silent> <d-K> :w<bar>cal<SID>XcodeRun('clean')<cr>
追加する部分
最後の方にでもどうぞ。
nn <buffer> <silent> <d-r> :w<bar>cal<SID>XcodeBuildRun<cr>
nn <buffer> <silent> <d-b> :w<bar>cal<SID>XcodeBuild<cr>
nn <buffer> <silent> <d-K> :w<bar>cal<SID>XcodeClean<cr>
fun s:XcodeBuildRun() call system("open -a Xcode ".b:cocoa_proj." && osascript -e '" \ ."tell application \"Xcode\" to activate \r" \ ."tell application \"System Events\" \r" \ ."tell process \"Xcode\" \r" \ ."key code 36 using {command down} \r" \ ."end tell \r" \ ."end tell \r'")
fun s:XcodeBuild() call system("open -a Xcode ".b:cocoa_proj." && osascript -e '" \ ."tell application \"Xcode\" to activate \r" \ ."tell application \"System Events\" \r" \ ."tell process \"Xcode\" \r" \ ."key code 11 using {command down} \r" \ ."end tell \r" \ ."end tell \r'")
fun s:XcodeClean()call system("open -a Xcode ".b:cocoa_proj." && osascript -e '"\ ."tell application \"Xcode\" to activate \r"\ ."tell application \"System Events\" \r"\ ."tell process \"Xcode\" \r"\ ."key code 40 using {command down} \r"\ ."end tell \r"\ ."end tell \r'")
実際、ビルドして実行以外は試していないのですがこれでいけるはず。。。いけなかったらごめんなさい。またこの方法だとcocoa.vimの動作が少し動作が変わってしまいます。
- Command + R = ビルドして実行する(iPhoneシミュレータが起動する)
- Command + B = ビルドしてXcodeに移動する
- Command + shift + K = クリーニングをしてXcodeに移動する。
その2: Xcodeの設定を変更する。
- Xcodeでプロジェクトを右クリックして情報を見るを選択。

- ベースSDKの項目を探して、iPhoneシミュレータを選ぶ。

- アーキテクチャをNavive Architecture of Build Machineに変更する。

こちらの方法の欠点はベースSDKなどやアーキテクチャを変更してしまっているので、注意が必要だったりもします。またCommand + BするにはMakefileのあるディレクトリにあるファイルを編集している必要があるようです。
たかともは方法2の設定をしていますが、お好みにあわせてどうぞ♪
ここまで書いておもったのですが、方法1でやるなら
" ビルドして実行
autocmd! FileType objc nn <buffer><silent> <d-r> :w<bar>call<SID>XcodeCommand('36')<cr>
" ビルドするだけ
autocmd! FileType objc nn <buffer><silent> <d-b> :w<bar>call<SID>XcodeCommand('11')<cr>
" クリーニング
autocmd! FileType objc nn <buffer><silent> <d-K> :w<bar>cal<SID>XcodeCommand('40')<cr>
function! s:XcodeCommand(keycode) call system("open -a Xcode ".b:cocoa_proj." && osascript -e '" \ ."tell application \"Xcode\" to activate \r" \ ."tell application \"System Events\" \r" \ ."tell process \"Xcode\" \r" \ ."key code ".a:keycode." using {command down} \r" \ ."end tell \r" \ ."end tell \r'") endfunction
こんなコードを~/.vim/ftplugin/objc_cocoa_mappings.vimに追加してあげた方がスマートな気がします。ちゃんと動くのか不安ですが。。。。動作報告よろしくお願いします。というわけでMac & iPhoneの開発者のみなさん、iPhone4にむけてがんばりましょ~♪
でわでわ、たかともでした。
追記
上のコードだともcocoa.vimにもともとある関数が呼ばれてしまうみたいです。「autocmd! FileType ~」の部分のの部分を調節して使う。もしくは方法1で削除する部分を消したあとに、上のコードをVimの設定ファイルに追加してください。
2010/06/09:方法1の追加するコードの代わりに上のコードを使うように修正