はじめに
キーの中には押しやすい配置と押しにくい配置があります。基本的にキー配列というのは英語の文章を効率よく入力するために考えられていて、それが必ずしもキーボードを扱う他の作業に適しているとは限りません。プログラミングもその一つ。プログラムでは普段の文章入力では使うことのないいくつかの記号があり、それが入力をほんの少し妨げています。
今回は、PHPを書く上で頻繁に押すキーを簡単に押せるようにして仕事を1%効率化しよう。という内容を書きます。
遅くなりましたがサーバーエンジニアの浦野です。よろしくお願いします。
使うもの
- Macbookキーボード(日本語配列)
- Karabiner https://pqrs.org/osx/karabiner/index.html.ja
変更前、変更後
まず最初に変更前と変更後の配列を。
変更前
変更後
基本的には小指の遠いところにあるキーを親指周辺や普段の手の配置で押せるようにする。という考え方です。...では完成形が分かった上で、ここからはこれに至るまでのやり方を説明します。
Karabinerの設定方法には2種類あります
既存の設定を使わせてもらう
Karabinerには最初から用意されている設定項目があります。チェックボックスを入れるだけなのでとっても簡単。
自分でカスタマイズした設定を使う
Karabinerは最初から用意されている設定とは別に、自分でXmlファイルを書いて設定することができます。/Library/Application\ Support/配下に設定ファイルがあります。
$ cat ~/Library/Application\ Support/Karabiner/private.xml <?xml version="1.0"?> <root> </root>
一般的な設定内容
Slack専用設定
今やどこの会社でも利用しているチャットツール、Slack. この操作性を少しだけ上げてみます。Slackって実はキー操作でチャンネルの移動ができるんですね。Optionを押しながらの上下キーで上下のチャンネルに移動、それに地味に便利なのがOption+Shift+下で未読のチャンネルへの移動です。
でも矢印キーなんて押したくないので変更します。Ctrl+Nで下のチャンネル、Ctrl+Pで上のチャンネル、Ctrl+Wで未読のチャンネルに飛ぶ設定がこちら。Vimmerなのですがカーソル移動はEmacsが好きなのでこうしています。
押すキー | 入力される文字 |
---|---|
Ctrl+P | 上のチャンネルに移動 |
Ctrl+N | 下のチャンネルに移動 |
Ctrl+W | 未読のチャンネルに移動 |
<appdef> <appname>SLACK</appname> <equal>com.tinyspeck.slackmacgap</equal> </appdef> <item> <name>For Slack CTRL+N=move next channel, CTRL+P=move previous channel, CTRL+W=move unread channel</name> <identifier>private.app_slack_move_channel_with_ctrln_ctrlp</identifier> <only>SLACK</only> <autogen>__KeyToKey__ KeyCode::N, ModifierFlag::CONTROL_L, KeyCode::CURSOR_DOWN, ModifierFlag::OPTION_L</autogen> <autogen>__KeyToKey__ KeyCode::P, ModifierFlag::CONTROL_L, KeyCode::CURSOR_UP, ModifierFlag::OPTION_L</autogen> <autogen>__KeyToKey__ KeyCode::W, ModifierFlag::CONTROL_L, KeyCode::CURSOR_DOWN, ModifierFlag::OPTION_L, ModifierFlag::SHIFT_L</autogen> </item>
SemicolonをEnterに
Enterって頻繁に押す割に若干遠くに配置されているんですよね... 思い切ってEnterには右手の小指を割り当てましょう。
しかし単純に変更してしまうとSemicolonが入力できなくなるので以下のように変更します。
押すキー | 入力される文字 |
---|---|
Semicolon | Enter |
Ctrl+Semicolon | Semicolon |
Shift+Semicolon | Plus |
<item> <name>Semicolon to Return plus</name> <appendix>(+ Control+Semicolon to Semicolon, + Shift+Semicolon to plus)</appendix> <identifier>remap.semicolon2return_controlsemicolon2semicolon_plus</identifier> <autogen>--KeyToKey-- KeyCode::SEMICOLON, VK_CONTROL, KeyCode::SEMICOLON</autogen> <autogen>--KeyToKey-- KeyCode::SEMICOLON, VK_SHIFT, KeyCode::SEMICOLON, VK_SHIFT</autogen> <autogen>--KeyToKey-- KeyCode::SEMICOLON, KeyCode::RETURN</autogen> </item>
ちょっと変わったもの
CtrlをEscapeに
Vimmerにとって恩恵の大きい設定になります。左手の小指の一つ左のキーを、単体で押したらEscape, 何かと組み合わせて押したらCtrlになるようにします。設定方法は簡単。既に用意されているのでチェックボックスを入れるだけです。
押すキー | 入力される文字 |
---|---|
Ctrl | Esc |
Ctrl+何か | Ctrl+何か |
+ Change Control_L Key (Left Control) v Control_L to Control_L (When you type Control_L only, send Escape)
SpaceをShiftに
地味に押しにくい割に頻繁に押すキーであるShiftを入力しやすくします。これも設定方法は簡単。既に用意されているのでチェックボックスを入れるだけです。単体で押すとSpace, 何かと組み合わせて押したらShiftになります。
押すキー | 入力される文字 |
---|---|
Space | Space |
Space+何か | Shift+何か |
+ Change Space Key v Space to Shift_L (When you type Space only, send Space)
PHPじゃないとありえないもの
PHPじゃないと...と言いつつ、実際は Ctrl/Shift + 英数/かなは汎用的に使える4パターンになっています。PHPを使うならあの気持ち悪い矢印を設定してしまうといいのではないでしょうか。
私は | \ -> => の4つを割り当てています。OR記号、特殊文字のエスケープ、クラス、Array対策ですね。Pythonみたいに遠い記号を使わなくて済むならこの4つをもっと上手く使えるのに...
押すキー | 入力される文字 |
---|---|
Ctrl+英数 | -> |
Shift+英数 | => |
Ctrl+かな | | |
Sfhit+かな | \ |
<item> <name>Control_L KANA to |</name> <identifier>controll_kana_to_pipe</identifier> <autogen>--KeyToKey-- KeyCode::JIS_KANA, VK_CONTROL, KeyCode::JIS_YEN, VK_SHIFT</autogen> </item> <item> <name>Control_L EISUU to -></name> <identifier>controll_eisuu_to_arrow</identifier> <autogen>--KeyToKey-- KeyCode::JIS_EISUU, VK_CONTROL, KeyCode::MINUS, KeyCode::DOT, VK_SHIFT</autogen> </item> <item> <name>Shift_L KANA to \</name> <identifier>shift_kana_to_backslash</identifier> <autogen>--KeyToKey-- KeyCode::JIS_KANA, VK_SHIFT, KeyCode::VK_JIS_BACKSLASH</autogen> </item> <item> <name>Shift_L EISUU to =></name> <identifier>controll_eisuu_to_arrow2</identifier> <autogen>--KeyToKey-- KeyCode::JIS_EISUU, VK_SHIFT, KeyCode::MINUS, VK_SHIFT, KeyCode::DOT, VK_SHIFT</autogen> </item>
おわりに
いかがでしたか?こんなマニアックな設定をする人はほとんどいないと思いますが、Karabinerは色んな設定ができて面白いのでぜひ試してみてください:)
KarabinerはMac限定なので、次はWindows編やります。
-
- -
子育て家族アプリ[Famm](http://famm.us)、カップル専用アプリ[Pairy](http://pairy.com/)を運営する [Timers inc.](http://timers-inc.com) では、現在エンジニアを積極採用中!急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください!
採用HP : http://timers-inc.com/engineerings