⌨️

左手デバイスからVimを操作する

に公開

この記事はVim駅伝の391本目の記事です。

左手デバイスという、キーボードのキーとは別で使える追加のキー、追加のホイール、追加のつまみを提供するデバイスがあります。左手デバイスはキーボードだとかさばる場面、キーが足らず追加のキーが欲しい場面で役立つデバイスですが、左手デバイスはVimを利用する際にももちろん使えます。

もちろん、キー入力時にホームポジションから大きく手を動かす必要がある関係で、左手デバイスとVimとの相性は良くはないのですが、設定は可能です。この記事では設定手順について示します。

設定手順

まずは左手デバイスのキーにホットキーを割り当てます。
左手デバイスは全部が全部そうではないですが、キーは独自のキーコードを送信しません。
そのため、キーにホットキーを割り当て、キー押下時にCtrl+F1やCtrl+Shift+F2といった指定のキー入力がされるように設定する必要があります。

ホットキーですが、キーに対応する操作はVim側で設定したいので、ホットキーはCtrl+F1やCtrl+Shift+F2など、OS、ターミナルエミュレーター、ターミナルマルチプレクサ、Vimのいずれのキーともバッティングしないキーがおすすめです。例えば、Wooting UwUのようにキーが3つのデバイスであれば、次のようにキーにホットキーを設定します。

左手デバイスのキー ホットキー
キー1 Ctrl+Shift+F1
キー2 Ctrl+Shift+F2
キー3 Ctrl+Shift+F3

そして、vimrcにキーに対応する操作を設定します。
例えば、次のように設定した場合、左手デバイスのキーごとの操作は次のようになります。

~/.vimrc
" キー1(Ctrl+Shift+F1)で上書き保存をする
nnoremap <silent><C-S-F1> <Cmd>write<CR>
" キー2(Ctrl+Shift+F2)で新しいタブを開く
nnoremap <silent><C-S-F2> <Cmd>tabnew<CR>
" キー3(Ctrl+Shift+F3)でノーマルモード⇔挿入モードを切り替え
nnoremap <silent><C-S-F3> i
inoremap <silent><C-S-F3> <ESC>
左手デバイスのキー 操作
キー1 上書き保存
キー2 新しいタブを開く
キー3 ノーマルモードなら挿入モードに入り、挿入モードならノーマルモードに戻る

設定手順はこれだけです。
キーに割り当てる操作はどのようなものでも問題ありません。

とはいえ、左手デバイスのキーはキー入力時にホームポジションから大きく手を動かす必要がある関係上、平時に利用する操作を割り当てるにはあまり向きません。操作を割り当てるのであれば、使用頻度が少ないがときどき利用する操作でかつ、キーボードのどのキーに割り当てるのも適さないと感じられる操作に割り当てるのがおすすめです。まずはキーボードのキーに操作を割り当てるのを検討してみて、それからの検討をおすすめします。

自分の場合はVimの外ですが、Stream Deckのキーに音声デバイス切り替えを割り当てています。操作としては使用頻度が少ないがときどき利用する操作で、キーボードのいずれのキーもいずれかのアプリによって何らかの操作が既に割り当てられていて、どのキーに割り当ててもキーがバッティングすることになるか複数の修飾キーを要求されるため、Stream Deck側に割り当てています。[1]

設定例

いくつかの左手デバイスについて、設定例を見てみましょう。
Vim側の設定は設定手順での設定そのままで、各デバイス側の設定の仕方を示します。

ACK05 Wireless Shortcut Remote

https://www.xp-pen.jp/product/ack05-wireless-shortcut-remote.html

ACK05 Wireless Shortcut Remoteの場合、
次URLのマニュアルの手順に沿ってPCと接続したのち、
次URLから設定ソフトをダウンロードしインストールします。
インストーラーは複数ありますが一致するOSの最新のバージョンのものを選べば大丈夫です。

https://www.xp-pen.jp/user-manual/ack05-user-manual
https://www.xp-pen.jp/download-978.html

設定ソフトのPentabletをインストールできたら起動します。
起動すると、次のようなウィンドウが立ち上がります。

まずは、プロファイルを作ってターミナルの外でキーが入力されないようしましょう。
ウィンドウの右上にある+からプロファイル追加ダイアログを出し、一覧にあればそこから、無ければ参照からターミナルのアプリを選択しプロファイルを作成します。
そして、デフォルトプロファイルにて、各キーについて、キーを右クリックからキー設定ダイアログを出し、その他→無効化に設定します。
次のように新しくプロファイルが作られ、次のようにデフォルトプロファイルでキーが無効化になっていれば、これで誤入力の心配がいらなくなります。[2]


次に、先ほど新規作成したプロファイルにて、
次のキーについて、キーを右クリックからキー設定ダイアログを出し、エクスプレスキー→キーボードから入力から次のようにホットキーを設定します。
次のようにキーにホットキーが設定されていれば、ACK05 Wireless Shortcut Remote側は設定完了になります。

左手デバイスのキー ホットキー
K1 Ctrl+Shift+F1
K2 Ctrl+Shift+F2
K3 Ctrl+Shift+F3

ACK05 Wireless Shortcut Remoteはキーに加え、ホイールにも操作を設定できるようになっています。もしホイールに割り当てたいような操作があれば、それも設定するといいと思います。

Microsoft Number Pad

https://www.microsoft.com/ja-jp/d/microsoft-number-pad/8v4nh9q07xc8/DBJS?activetab=pivot:概要tab

左手デバイスというよりはテンキーですが、Microsoft Number Padの場合、
次URLのマニュアルの手順に沿ってPCと接続したのち、
次URLから設定ソフトのインストーラーをダウンロードしインストールします。
インストーラーは複数ありますが一致するWindowsのアーキテクチャのものを選べば大丈夫です。[3]

https://support.microsoft.com/ja-jp/topic/microsoft-テンキーを使用する-ddc5eb8b-1368-fadf-dc5d-92e0bde0a745
https://support.microsoft.com/ja-jp/topic/マウス-キーボード-センターのダウンロード-f5b10905-7887-eedb-2f1c-d0737a36a3b2

設定ソフトのMicrosoftマウスキーボードセンターをインストールできたら起動します。
起動すると、次のようなウィンドウが立ち上がります。

次のキーについて、キーを左クリックからキー設定を開き、すべてのコマンドを表示→キーの組み合わせから次のようにホットキーを設定します。
次のようにキーにホットキーが設定されていれば、Microsoft Number Pad側は設定完了になります。

テンキーのキー ホットキー
/ Ctrl+Shift+F1
* Ctrl+Shift+F2
- Ctrl+Shift+F3

Microsoftマウスキーボードセンターにはプロファイル機能が無いため、もし別のキーとホットキーがバッティングする場合は、別のホットキーをおすすめします。

Stream Deck Pedal

https://www.elgato.com/jp/ja/p/stream-deck-pedal

左手デバイスというよりはフットペダルですが、Stream Deck Pedalの場合、
次URLのページ下部のクイックスタートガイドの手順に沿ってPCと接続したのち、
次URLのページ右上のシステムで絞り込むからOSを選び、Stream Deckのダウンロードから設定ソフトのインストーラーをダウンロードしインストールします。[4]

https://www.elgato.com/jp/ja/p/stream-deck-pedal
https://www.elgato.com/jp/ja/s/downloads

設定ソフトのStream Deckをインストールできたら起動します。
起動すると、次のようなウィンドウが立ち上がります。

まずは、プロファイルを作ってターミナルの外でキーが入力されないようしましょう。
歯車アイコンから環境設定ウインドウを出し、プロファイルタブを開き、Stream Deck Pedalを選び、+→新規プロファイルを追加からプロファイルを作成します。
プロファイルを作成したら、プロファイルのアプリケーションについて、一覧にあればそこから、無ければその他からターミナルのアプリを選択します。
そして、デフォルトプロファイルにて、これを自分のデフォルトプロファイルにチェックを入れます。
次のように新しくプロファイルが作られ、次のようにデフォルトプロファイルがデフォルトプロファイルになっていれば、これで誤入力の心配がいらなくなります。[5]


次に、先ほど新規作成したプロファイルにて、
次のペダルについて、システム→ホットキーをドラッグアンドドロップでドロップし、次のようにホットキーを設定します。
次のようにペダルにホットキーが設定されていれば、Stream Deck Pedal側は設定完了になります。

フットペダルのペダル ホットキー
Ctrl+Shift+F1
中央 Ctrl+Shift+F2
Ctrl+Shift+F3

フットペダルなのでホームポジションが崩れることは無いものの、足では普段操作しないと思うので慣れがいると思います。新しく第三第四の腕が生えてもなかなか活用できないであろう感じというか…自分は混乱したので現状は何も割り当てていません。

まとめ

このようにして、左手デバイスにVimの操作を割り当てることができます。
Vimは手に操作を覚えさせて操作するので、左手デバイスは中々活用が難しいところですが、
状況によっては活用できる場面があるかもしれません。
もし気になればお試しください。

脚注
  1. Stream Deckが左手デバイスか…というと微妙なところですが… ↩︎

  2. 必須の設定ではないためスキップしても問題ありません。 ↩︎

  3. 確認した限りだと設定ソフトはWindows用のもののみで、Mac向け、Linux向けのものは見当たりませんでした。 ↩︎

  4. 確認した限りだと設定ソフトはWindows用とMac用のもののみで、Linux向けのものは見当たりませんでした。 ↩︎

  5. 必須の設定ではないためスキップしても問題ありません。 ↩︎

Discussion