Post

エンジニアならキーボードだけでPC操作したいよね ~Vim系ツール~

半年前に分割キーボードを買い,以前よりだいぶ楽にタイピングができるようになりました. すると不思議なことに,人間はもっと楽になりたくなるもので,キーボードからトラックボールへの腕の移動すらも面倒に感じるようになってしまいました. そうなったら「キーボードだけでPCを操作できるようにするしかない!」と思って調べてみたら,”Vim”を見つけました. 今回は”Vim”やその周辺ツールを使用してPCを操作することについて書いていく.

タイトル

Vimとは

Vimとは,CLI上での動作を前提としたテキストエディタです. CLI上で動作するということは,マウスを使わずにキーボードだけで操作できるということになります. このキーボードだけで動作できるという特性が好きな人にはたまらないようで,”Vimmer”と呼ばれるVimの愛好者がたくさんいます.

では,マウスを使わずにどうやって操作をするのか. それは,「モードの切り替え」と「キーバインド」です.

Vimには,ノーマルモード,インサートモードの2つのモードがあります(正確にはビジュアルモードとコマンドラインモードも含む4つ). ノーマルモードはカーソルの移動やコピー,ペーストなどの操作を行うモードで,インサートモードでテキストの編集をするモードです. ノーマルモードでは,テキストの入力はできなく,キーを押すとそのキーに割り当てられたコマンドが実行されます. 下の表がそのコマンドの例です.

コマンド機能
hカーソルを左に移動
jカーソルを下に移動
kカーソルを上に移動
lカーソルを右に移動
xカーソル位置の文字を削除
diw単語を削除
ddカーソル行を削除
yyカーソル行をコピー
pカーソル位置にペースト

これらのコマンドを使うことで,マウスを使わずにテキストの編集ができるというわけです. 他にも大量にコマンドがあるので,興味がある方は調べてみてください. 「それじゃあ,hを文字として入力したいときはどうするの?」と思うかもしれませんが,そこで「インサートモード」が登場です. iを入力することでノーマルモードからインサートモードに切り替わり,カーソル位置に文字を入力することができます. インサートモードからノーマルモードに戻るにはESCキーを入力すれば良いです.

このように,キーボードだけで,操作・編集を行うことができるのがVimの特徴です.

キーボードだけでPC操作する方法(ここからが本題)

Vimはあくまでテキストエディタなので,テキストの編集以外の操作はできません. Vimと似たような操作感覚でPC全体を操作できるツール・方法がいくつかあります.

Vimium(Vimium C)

Vimiumとは,Chromeの操作をVimのキーバインドで行うことができる拡張機能です. Chromeウェブストアで「Vimium」か「Vimium C」を検索してインストールするだけで使用できます (Vimiumはバージョンが少し古いので,Vimium Cをおすすめします.). 基本操作は以下の通りです.

コマンド機能
h左にスクロール
j下にスクロール
k上にスクロール
l右にスクロール
H戻る
J左のタブに移動
K右のタブに移動
L進む
d半ページ下にスクロール
u半ページ上にスクロール

他にも様々なコマンドがありますが,長いので省略します. これらで,ページのスクロールやタブの切り替えなどがキーボードだけで行えるようになります.

しかし,これだけでは移動しかできず,クリックができません. そこで,fキーがあります. fキーを押すと,easymotionという機能が有効になり,ページ内のリンクやボタンにキーが表示されます.

image_error

そして,クリックしたいリンクやボタンのキーを入力することで,クリックすることができます. これで,ブラウジングはキーボードだけで行えるようになります.

コードエディタ

開発や研究をしていたらコードを書く機会は少なからずあるはずです. そのコードエディタもVimライクにキーボードのみで操作できます.

1. NeoVim

NeoVimはVimの拡張版で,Vimよりも機能が豊富なエディタです. Vimのプラグインをそのまま使うことができるので,Vimの操作感覚をそのまま使うことができます. ただ,導入が少し面倒なので,Vimにまだ慣れていない人は使わない方がいいかもしれませんが,一応紹介しておきます..

2. Visual Studio Code(VSCode)

本当にVimmerな人は「Vim」や「NeoVim」でコードを書くかもしれませんが,ほとんどの人には「Visual Studio Code(VSCode)」にVim拡張機能を入れる方法をおすすめします. すでにVSCodeを使っている人も多いと思いますが,その設定そのままでVimのキーバインドを使うことができます. やり方は,拡張機能検索欄で「Vim」を検索してインストールするだけです.

ここで,Vimiumの操作に慣れている人は,easymotionでカーソルを移動させたくなると思います. 安心して下さい.VSCodeのVim拡張機能にもeasymotionがあります. ただ,easymotionの起動がデフォルトでは少し面倒なので,VSCodeの設定ファイルに以下の設定を追加してください.

1
2
3
4
5
"vim.normalModeKeyBindingsNonRecursive": [
    {
        "before": ["f"],
        "after": ["leader", "leader", "leader", "b", "d", "w"]   
    },

これで,Vimiumと同じようにfを押すことでeasymotionが起動します.

image_error image_error

これで,キーを入力することでカーソルを移動させられます.

3. Zed

ZedはAtom(githubが昔開発していたコードエディタで,VSCodeに吸収された)の元開発者が開発しているエディタ. GPUとCPUを効率的に使用するようになっているので,VSCodeより軽量で高速です. また,VSCodeと似たようにショートカットが設定されているので,VSCodeからの移行も苦にはなりません.

さらに,ZedはVimで操作することを前提として開発されています. そのため,拡張機能を入れることなく,Vimのキーバインドで操作することができます(拡張機能を入れると動作が重くなるので,VSCodeのように拡張機能を入れて対応していくのはあまり良くない).

私はこれを使い始めてから,開発スピードが格段に上がった(と思っている)ので,かなりおすすめです.

その他(OS独自のショートカット)

VimiumやZedを使って.ブラウジングやコーディングがキーボードだけで行えるようになったとしても,その他の作業でマウスを使っていたら意味がありません. そのため,OS独自のショートカットも覚えておく必要があります. それはOSによって異なるので,各自で調べて覚えておいてください.

ショートカットのキーが押しにくい場合には.キーボードのマッピングを行うことをおすすめします(Macの全画面表示のショートカットはcmd+ctrl+fでかなり押しにくいので,私はspace+;で全画面できるように変えている). Macの場合には「karabiner-elements」,Windowsの場合には「AutoHotKey」を使うことで,マッピングできます.

ただし,限界はある

上記の方法で,ほとんどの作業をキーボードだけで行えるようになりますが,限界はあります. 例えば,powerpointのスライド作成や,画像の編集などの視覚的作業が必要なアプリは,キーボードだけではできません. そういう場合には,腹を括ってマウスを使いましょう.

まとめ

今回は,Vim系のツールを使うことで,キーボードだけで作業を行う方法を紹介しました. 私もこれを始めてから作業効率が格段に上がった上,ストレスも減ったので,ぜひ試してみてください. vimコマンドを覚えるのが大変だと感じる人は,Vimiumだけでも試してみてください.

This post is licensed under CC BY 4.0 by the author.