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

Today Fortkle Learned.

知らないことの方が多いので今更調べています。さらに一歩先に行けたら嬉しいです。

自分のキーバインドの環境を晒す(Mac + Win JISキーボード)

※自分用メモ。

環境

  • Mac (EI Capitan)
  • Thinkpad Bluetooth Keyboard (Windows JISキーボード)

実現したいこと

  • もともとWindowsユーザーだったので基本はWindowsっぽいキーバインド
    • 一番左中央のキー+C でコピー、+Vでペーストができる
  • capsは不要
  • Terminalのときだけ
    • 一番左中央のキーをCtrlにする
  • PhpStormのときだけ
    • CommandとControlを入れ替える
    • vimのようにhjklで←↑→↓できるようにする

設定するもの

  • システム環境設定
  • Karabiner
  • Seil
  • PhpStorm

設定

システム環境設定

標準キーボード

f:id:fortkle:20170222163825p:plain

Thinkipadキーボード

f:id:fortkle:20170222163846p:plain

Karabiner

標準項目

・✓ [Pointing Device]→[CursorMove to ScrollWheel]→[MiddleClick+CursorMove to ScrollWheel]
・✓ [Change Command_L Key (Left Command)→[Command_L to Control_L(only in Terminal)]
・✓ [Change Control_L Key (Left Control)→[Control_L to Command_L(only in Terminal)]
・✓ [For Japanese]→[Change Backquote( ) Key]→[Backquote( ) to KANA/EISUU (toggle)]
・✓ [For Japanese]→Change Yen(¥) to Backslash() (except ~)

自作項目

下記xmlをKarabinerに食わせてチェックを付ける

・✓Control+J/K to Arrow Up/Down
・✓Control+H/L to Arrow Left/Right
・✓Control_L to Command_L
・✓Command_L to Control_L

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>PHPSTORM</appname>
    <equal>com.jetbrains.PhpStorm</equal>
  </appdef>
  <item>
    <name>Control+J/K to Arrow Up/Down (on PhpStorm)</name>
    <identifier>private.control_jk_to_updown</identifier>
    <only>PHPSTORM</only>
    <autogen>
      --KeyToKey--
      KeyCode::K, ModifierFlag::CONTROL_L | ModifierFlag::NONE,
      KeyCode::CURSOR_UP
    </autogen>
    <autogen>
      --KeyToKey--
      KeyCode::J, ModifierFlag::CONTROL_L | ModifierFlag::NONE,
      KeyCode::CURSOR_DOWN
    </autogen>
  </item>
  <item>
    <name>Control+H/L to Arrow Left/Right (on PhpStorm)</name>
    <identifier>private.control_hl_to_leftright</identifier>
    <only>PHPSTORM</only>
    <autogen>
      --KeyToKey--
      KeyCode::H, ModifierFlag::CONTROL_L | ModifierFlag::NONE,
      KeyCode::CURSOR_LEFT
    </autogen>
    <autogen>
      --KeyToKey--
      KeyCode::L, ModifierFlag::CONTROL_L | ModifierFlag::NONE,
      KeyCode::CURSOR_RIGHT
    </autogen>
  </item>
  <item>
    <name>Control_L to Command_L ( on PHPStorm)</name>
    <identifier>private.command_to_control</identifier>
    <only>PHPSTORM</only>
    <autogen>__KeyToKey__ KeyCode::CONTROL_L, KeyCode::COMMAND_L</autogen>
  </item>
  <item>
    <name>Command_L to Control_L ( on PHPStorm)</name>
    <identifier>private.control_to_command</identifier>
    <only>PHPSTORM</only>
    <autogen>__KeyToKey__ KeyCode::COMMAND_L, KeyCode::CONTROL_L</autogen>
  </item>
</root>

Seil

・✓ [For Japanese]→Enable NFER Key on PC keyboard ・✓ [For Japanese]→Enable XFER Key on PC keyboard ・✓ [For Japanese]→Enable KATAKANA Key on PC keyboard

PhpStorm

~/.ideavimrcを作成

inoremap <c-]> <esc>
set hlsearch
nnoremap <Esc><Esc> :nohlsearch<CR><Esc>

結果

以上を設定すると以下のようになる。
※ キーボードを上から見たときの配置を表す

## macキーボード
command
shift
ctrl option command 英数

## thinkpadキーボード
command
shift
Fn ctrl option command

## ターミナル上
ctrl
shift
(Fn) command option ctrl 英数

## PhpStorm上 (macキーボード)
ctrl
shift
command option ctrl 英数

## PhpStorm上 (thinkpadキーボード)
ctrl
shift
Fn command option ctrl