エンジニアならキーボードだけで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という機能が有効になり,ページ内のリンクやボタンにキーが表示されます.
そして,クリックしたいリンクやボタンのキーを入力することで,クリックすることができます. これで,ブラウジングはキーボードだけで行えるようになります.
コードエディタ
開発や研究をしていたらコードを書く機会は少なからずあるはずです. そのコードエディタも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が起動します.
これで,キーを入力することでカーソルを移動させられます.
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だけでも試してみてください.