月別アーカイブ: 1月 2013

意外と知らないMacの便利なショートカットキー

Macではショートカットを覚えておくと作業が結構楽になることが多々あります。どこにも載っていないような、そんな便利なショートカットを紹介したいと思います。「」で囲まれているのはショートカットキーの組み合わせです。

ファイルを開く

Finderでファイルを選択後、 「Cmd + O」

ファイルを削除

Finderでファイルを選択後、「Cmd + delete」

画像のプレビュー

Finderで画像ファイルを選択後、「スペース」

Dockで画像をプレビュー

Dockでフォルダを開き、画像にカーソルをあわせて「スペース」

タブでアプリケーションを切り替え中にウィンドウも切り替える

「Cmd+Tab」でアプリケーションにフォーカスを合わせた後、そのままキーを離さずに矢印キーの「↑」または「↓」を押してウィンドウを選択し、全てのキーを離し「Enter」

スクリーンショットの部分撮影

「Shift+Cmd+4」のあと部分選択

スクリーンショットの部分クリップボードコピー

「Ctrl+Shift+Cmd+4」のあと部分選択

ウィンドウの部分撮影

「Shift+Cmd+4」のあと、カーソルをウィンドウに合わせ「スペース」を押し「クリック」

ウィンドウの部分クリップボードコピー

「Ctrl+Shift+Cmd+4」のあと、カーソルをウィンドウに合わせ「スペース」を押し「クリック」

スクリーンショット部分撮影時に撮影サイズを維持したまま領域のみ移動する

部分選択を維持しながら(マウスを離さずに)「スペース長押し」

行の最初に移動

テキストエディタ上で、「Cmd+←」

行の最後に移動

テキストエディタ上で、「Cmd+→」

一行選択

テキストエディタ上で、「Cmd+←」、「Shift+Cmd+→」
もしくはマウスで「トリプルクリック」

ファイル保存画面でデスクトップにジャンプ

「Cmd+D」

Finderまたはファイル保存画面で指定したディレクトリに移動

「Shift+Cmd+G」 または「/」、「~」(保存画面のみ)

しかもタブキーでディレクトリを補完してくれます。
~/Destop というように~を使うとホームディレクトリからパスが開始されます。

  • ~/des と入力後「Tab」(Cmd+D) → デスクトップ
  • ~/dow と入力後「Tab」→ 書類
  • ~/pic と入力後「Tab」→ ピクチャ
  • ~/use と入力後「Tab」→ ユーザーフォルダ一覧
  • ~/mus と入力後「Tab」→ ミュージック
  • ~/dow と入力後「Tab」→ ダウンロード
  • ~/mov と入力後「Tab」→ ムービー
  • ~/lib と入力後「Tab」→ ライブラリ

Fiderで目的のファイルまたはフォルダにフォーカスを当てる

Finderを開き、「Mail」というフォルダにフォーカスを当てたい場合は、早く「ma」とキーボードで入力するとそのファイルまたはフォルダにフォーカスが当たる。そして「Cmd+O」を押せばすぐにファイルまたフォルダが開ける

フォルダのサイズを簡単に調べる

Finderでフォルダにフォーカスを当て、「スペース」

保存しますか?確認画面ですぐキャンセルする

「Cmd+D」

タブ切り替えでアプリケーションを終了

「Cmd+Tab」でアプリケーション切り替え中にタブキーを離して「Cmd+Q」
Cmdを押しながらタブキーとQを連打すれば全てのアプリケーションを消せる。

アプリケーションの強制終了

「Option」を押しながらドックでアプリケーションを右クリックし、メニューから強制終了。

画像のサムネイル一覧表示

Finderで画像のたくさんあるフォルダを開き、「Cmd+A」のあと「スペース」。
そして、このボタンを押す。

フルスクリーンで画像のサムネイル一覧表示

Finderで画像のたくさんあるフォルダを開き、「Cmd+A」のあと「Option+スペース」。
フルスクリーンでプレビューが表示されるので、すぐに下のボタンを押す。 

再生ボタンを押せばスライドショーも楽しめる。

スライドショー

Finderで画像のたくさんあるフォルダを開き、「Cmd+A」のあと「option+Cmd+Y」

ショートカット(エイリアス)の作成

Finderでファイルを選択後、「Cmd+L」

ファイルの複製

Finderでファイルを選択後、「Cmd+D」

エイリアスのオリジナル表示

Finderでエイリアスを選択後、「Cmd+R」

新しいフォルダを作る

Finderで「Shift+Cmd+N」

Finderのサイドバーにフォルダ、アプリケーション、ファイルを追加する

Finderでフォルダ、ファイル、アプリケーション、ファイルを選択後、「Cmd+T」
通常のドラッグ&ドロップではファイルは、ファイルとアプリケーションが追加できないので大変便利です。

Finderでファイルの表示方法を切り替える

アイコン表示「Cmd+1」
一覧表示「Cmd+2」
カラム表示「Cmd+3」
プレビュー表示「Cmd+4」

ウィンドウを隠す

「Cmd+H」

デスクトップにジャンプ

Finderで「Cmd+Shift+D」

マイファイルにジャンプ

Finderで「Cmd+Shift+F」

ルートディレクトリにジャンプ

Finderで「Cmd+Shift+C」

ホームディレクトリにジャンプ

Finderで「Cmd+Shift+H」

アプリケーションディレクトリにジャンプ

Finderで「Cmd+Shift+A」

ユーティリティディレクトリにジャンプ

Finderで「Cmd+Shift+U」

ネットワークディレクトリにジャンプ

Finderで「Cmd+Shift+K」

AirDropにジャンプ

Finderで「Cmd+Shift+R」

書類にジャンプ

Finderで「Cmd+Shift+O」

ダウンロードディレクトリにジャンプ

Finderで「Option+Cmd+L」

現在アクティブなウィンドウのみ表示し、他のウィンドウを隠す

「Cmd+Option+H」

前の階層のディレクトリに移動

Finderで「ウィンドウタイトルを右クリック」

スリープせずにディスプレイだけオフにする

「Ctrl+Shift+⏏」
ホットコーナーに設定する方法も便利です。

スリープする

「Cmd+Option+⏏」

テキストエディタでカーソルのある位置にウィンドウをスクロールする

「Ctrl+L」

テキストエディタで周囲の書式設定に合わせてペーストする

「command+shift+option+V」

細かくボリュームを調整する

「shift+option」を押しながらボリューム調整キーを押す。

細かく明るさを調整する

「shift+option」を押しながら明るさ調整キーを押す。

出力装置と入力装置を切り替える

「option」を押しながらスピーカーアイコンをクリック

番外編: ファイルのパスを取得

ターミナルを起動後 ターミナルにファイルまたはフォルダをドラッグ&ドロップ

番外編: ターミナルでファイルまたはフォルダまたはアプリケーションを開く

open を使う。フォルダの場合はFinderでフォルダが開かれ、ファイルの場合はファイルに関連付けられたアプリケーションが起動する。アプリケーションの場合はそのままアプリケーションが起動する。

Mac OSXでタイムマシーンのバックアップが重い

Macで作業をしているとタイムマシーンが自動的に実行されて、タイムマシーンでバックアップ中にPCがよく固まるようになってきました。バックアップ先の外付けHDDの性能が悪いのか、単純にMacの内蔵HDDの性能が悪いのかわかりませんが、ひとつ気づいた点として毎回新たにバックアップされるサイズが多いことに気づきました。

一時間毎の実行にもかかわらず 4.46GBくらいバックアップしようとします。さすがこれは多すぎますよね。ファイルをダウンロードしたわけでもないのになぜかこの容量。なぜだろうと重い考えてみると、一つピンとくることが。
もしかしてキャッシュまでバックアップしてるんじゃないか・・・
実際、タイムマシーンの設定を見ると、除外フォルダがSpotlightのデータと、タイムマシーンのバックアップ先ディスクのみになっていました。つまりライブラリフォルダが復元作業のために必要としても、そのライブラリフォルダの中にある、Chromeのキャッシュフォルダやテンポラリフォルダまでもがバックアップの対象になっていたようです。

つまり、タイムマシーンでのバックアップ作業中にChromeが動かなくなったり固まったりするのは、キャッシュフォルダをタイムマシーンがロックをかけChrome上からキャッシュにアクセスできなくなっていたのが問題だったのではないかと予測することができます。もちろんあくまで推測ではあるのですが、この考えを元にタイムマシーンからキャッシュフォルダ、テンポラリフォルダ、そして忘れてはいけないのがlogフォルダを除外対象にします。

キャッシュ、一時、ログフォルダの除外

タイムマシーンを開いたら「オプション」をクリック。

何にも除外対象になっていません、キャッシュもログもおもいっきりバックアップされてしまいます。これはひどいですね。「+」を押して除外したいフォルダを選択します。

ディレクトリを 「Machintosh HDD(SSD)」 にしたあと、検索バーに「cache」と入力します。

検索対象に 「Machintosh HDD(SSD)」 を選択します。

種類でフォルダを選択します。

キャッシュフォルダがたくさん出てくるので全て選択して除外をクリックします。

これをあと二回繰り返して「logs」、「temp -template」を除外対象にします。

すると、一時間ごとのバックアップ時にバックアップされるサイズがかなり減ります。
さすがにバックアップ時に少しだけ重くなってしまうは仕方ないですが、すぐにバックアップが終わるようになるのでかなり快適に操作することができるようになります。

最後に

バックアップから除外したことによって復元に失敗してしまう可能性も少なからずあるので、自己責任でお願いします。

HTML5 History API を徹底的に試してみる

History APIとは

History APIはHTML5の機能のひとつで、ブラウザの戻る進むボタンのイベントを取得してページの内容を動的に変えることができるものです。なかなか便利な機能ではあったのですが、ちょっとつまずきポイントが多く、癖もかなりあるっぽいので徹底的に試してみようと思います。

スタック

ブラウザの履歴の一つ一つの記録をスタックといい、一つ履歴が増える度にスタックが増える。そしてHistoryAPIを使うとこのスタックをページ推移を行わなくても増やすことができます。 HistoryAPIによってスタックが増えた場合は、ブラウザの戻るボタンを押してもページ遷移が発生せず、何も起きない。それがHistory API。

スタックの追加

スタックを追加するには、このようにやります。
history.pushState("hoge", null, "/hoge");Code language: JavaScript (javascript)
これで、履歴が一つ分増えます。これを実行すると、ブラウザの戻るボタンを一度押しても何も起きません。(ページ推移が発生しません) しかし、二回ボタンを押すといつもどおりページ推移が発生します。 しかし、このhistory.pushStateを使う前に必ず
history.replaceState("index");Code language: JavaScript (javascript)
とします。 これをすることでGoogle Developer Tools もしくは Firebug上で
history
と入力し、エンターを押すと、historyオブジェクトが見えるので、historyオブジェクトを展開し、stateプロパティを確認すると、そこがindexになっていることが確認できます。 必ずこれをやっておかないとめんどくさいことになります。

ブラウザの戻る・進むイベントを監視する

jQueryを使っていますが、jQueryの場合はこのように書くことでイベントが実装できます。
$(window).on("popstate", function(_event){
    var state = _event.originalEvent.state;
    console.log("_event", _event);
    console.log("state", state);
});Code language: JavaScript (javascript)
これをソースコード内に記述して、
history.pushState("hoge", null, "/hoge");Code language: JavaScript (javascript)
を実行して、ブラウザの戻るボタンをクリックします。 Google Developper Tools または Firebugのコンソールで確認すると、 state がindexになっていることがわかります。 これがハマりポイントでした。最初に history.replaceState(“index”); をしたことで、index と表示されたわけですが、これをやらないとここが、 null になってしまいます。 最初このstateの値は hoge になるものだと思っていたのですが、実はそうではなく、戻るページに設定されているstateらしいです。 構造的には「index -> hoge」 という構造になっています。 このあたりがややこしいので注意が必要です。

Tips

History APIは基本的に以上の仕組みさえ理解すればそれだけですんなりと使えますが、他にも覚えておくと便利な点をあげておきます。

history.state

現在のstateを確認できます。indexなのかhogeなのか。

history.back()

これを実行するとブラウザを戻ります。ページ内に戻るボタンを設置する場合はこのメソッドを使用します。ただ、対応していないブラウザもあるので機能を切り分ける必要があります。

history.forward()

これを実行するとブラウザを進みます

history.go(num)

指定した履歴へジャンプします。

history.length

現在の履歴の数を表示します

location.pathname

現在のドメインを覗いたディレクトリパスを取得します

location.search

現在のURLの?の後ろのパラメータを取得します