読者です 読者をやめる 読者になる 読者になる

イメージに染まるまで……

Mac,iOSなどAppleの製品についての記事や、セキュリティだったりGTDの記事を書いています。

DefaultKeyBindings.dictを使ってOSXのキーバインドを変更する 〜Part 2 DefaultKeyBindings.dictの設定

Mac Tips

はじめに

前回までで、基本的なOSXのキーボードショートカットに関しておさらいしてきました。とうとう、自分でキーボードショートカットを決めるべき時です。

ただ、これが結構面倒だと思った場合は、Karabiner(旧KeyRemap4MacBook)を利用すればよいでしょう。

こちらは最初から大量の設定を持ったアプリで、Emacsモードはおろか、Viモードまで用意しています。 実は、DefaultKeyBindings.dictでもVi風のキーボードショートカットの設定や、EmacsのControl - xから始まるキーバインドも設定することはできるのですが、結構複雑なので、このアプリケーションの力を借りた方が早いです。


前置き

この連続した記事は、OSXの基本的な機能をおさらいし、把握した上でさらに機能を引き出そうという意図で書いています。

なので、デフォルトで出来ることがここまであるということを確認したいと考えています。

よって(このブログ全体かもしれないですが)、デフォルトの機能をおさらいするということを必ず行います。私個人の嗜好で、アプリケーションを入れることは、OSに不足していると考えられることを補うという方向を持つためです。

この記事もそれに則って、DefaultKeyBindings.dictを利用する方向にしました。


DefaultKeyBindings.dictの設定

パスは、~/Library/KeyBindings/です。無ければ作成します。

DefaultKeyBindings.dictは、テキストエディタならほとんどなんでもかまいません。作成自体は可能です。

ただし、保存するときに、プレーンテキストで保存しますので、そこだけは注意してください。

設定例はたくさんあります。

ザリガニが見ていた……の記事だったり……

テキスト編集のキー操作を自在にコントロールする - ザリガニが見ていた...。

時々紹介するbrettterpstraさんのページを参考に、自分の好みのものを追加します。

とりあえず、このサイトから様々な設定例を見て、自分の好みの動作を探して行くのが近道でしょう。

私自身の設定は、そこまで多くありません。

しかし、この設定があるかないかでキーボード操作のスピードが全く違うのです。細かいかもしれないけれど、細かいからこその違いが出てきてしまうのです。

設定

{
//command + (Shift +) Returnで行の途中でもなんでも次(前)に行を入れる
// TextMate Command-Return (Command Enter)
"@\U000D" = (moveToEndOfParagraph:, insertNewline:);
// Insert blank line above paragraph (Command Shift Enter)
"@$\U000D" = (moveToBeginningOfParagraph:, moveLeft:, insertNewline:);
// move line up
//control + command + アローキー上下で行を移動
"^@\UF700" = (selectParagraph:, setMark:, deleteToMark:, moveLeft:, moveToBeginningOfParagraph:, yank:, moveLeft:, selectToMark:, moveLeft:);
// move line down
"^@\UF701" = (selectParagraph:, setMark:, deleteToMark:, moveToEndOfParagraph:, moveRight:, setMark:, yank:, moveLeft:, selectToMark:);

//command + mでリターンまで行なう
"^m" = (insertNewline:);
}

説明

最初の4つの設定は、

Keybindings that everyone should have - BrettTerpstra.com

をからそのまま頂いたものです。

command + returnで次の行を追加するキーバインドです。shiftキーを加えると、前方に行を入れることが可能です。

これのcommand + o との大きな違いは、カーソルの後ろに文字があっても行を追加する振る舞いをすることです。

command + o は、カーソルの後ろに文字があるとそれを含めた状態で行を追加します。

f:id:nya-0:20150328180246g:plain

これでは面倒な場合に使えるわけです。

control + command + ↑ or ↓は、アウトラインエディタよろしく行を上下に動かすことが可能になります。個人的にこれは便利だと感じています。

ちなみにこの機能、Foldingtextというアプリケーションが持っています。

TaskPaperやWrite Roomで有名なHogBeySoftwareさんが開発したアプリケーションで、FoldingTextのこのコマンドが便利だったので、ここでも利用できると思ったため、この設定を追加しました。

FoldingText

FoldingText

  • Hog Bay Software
  • 仕事効率化
  • ¥3,600

最後に私の目的、command + m で変換の決定だけでなく、return(enter)と同じ機能を持たせる設定です。

これで、完了です。

おわりに

いかがだったでしょうか。

ここまで、OSXのキーボードの持っている力を引き出してみようとしてみました。

日本語入力システム(10.9までの「ことえり」)はかなり使えることを意識してほしいと思います。

確かに昔はちょっとお馬鹿さんだったのですが、今ではかなり精度が上がりましたし、どんな日本語入力でも辞書さえできればあまり変わりはなくなってしまいますよね。

それでも足りなかったり、すでにATOKなどで辞書を持っていて、新しく作ることが面倒な方なら、IMを変えてもいいかもしれません。

是非、OSXが最初から持っている日本語入力の力を最大限引き出してあげてください。

参考サイト

pqrs.org

テキスト編集のキー操作を自在にコントロールする - ザリガニが見ていた...。

Keybindings that everyone should have - BrettTerpstra.com