[効率化]この手をもう二度と(キーボードから)離さないために、僕たちに出来る事。


作業時に、マウスとキーボードを持ち替えるのは、結構面倒です。
極力キーボードのみで操作するための、ちょっとした情報をまとめてみます。


# 各種ショートカット

Windows で使える操作です。他のOSでも同じ様な機能があると良いですね。

## ウインドウの切り替え

* `Alt`+`Tab` : ウインドウの切り替え
* `Win`+`数字キー` : タスクバーのn番目のアプリに切り替え
  + e.g. `Win`+`1` で一番左のアプリに, `Win`+`3` で左から3番目のアプリに、切り替える。
  + 「タスクバーへピン止め」をしておくと、ランチャとしても使える。


## メニューの操作

* `Altキー`: メニューにフォーカスを移す
* `Appsキー`[^1]: コンテキストメニューの表示
* キーボードニーモニック[^2] (下線の付いた英数字)が付いているメニューは、該当する英数字キーで選択,実行ができる
![キーボードニーモニック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274593/67b8f55b-0651-0798-b337-6bbdc57cb2b8.png)

[^1]:通常、右Altと右Ctrlの間にあるキー。[アプリケーションキー](https://ja.wikipedia.org/wiki/アプリケーションキー) とも。
[^2]:単にニーモニックとも。


例えば、TortoiseGit のログ表示を行うには、`Appsキー`→`T`→`右キー`→`L` とすれば良い[^3]。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274593/707d2f43-1bb3-e792-78d2-0357e6a23401.gif" width="50%">

[^3]:他のインストールしているアプリなど次第で、操作は変わる(コンテキストメニューの項目が変わるため)。

## GUI操作
* `Tabキー`:ボタン,テキストボックスのフォーカス移動
* `Alt`+`下キー`:コンボボックスの内容の表示
* `スペースキー`:チェックボックスの on/off

## その他

有益な物が無数にあるので、個人的によく使う物を抜粋。

* `Win`+`L` :画面のロック
* `Win`+`方向キー`:画面の移動
<!-- * `Win`+`右キー`,`左キー` で、画面の移動が出来る。 -->
<!-- * `Win`+`上キー` で、画面の最大化 -->
<!-- * メニューの無いアプリでは、`Alt`→`下キー`→`M` で画面の移動を開始 -->


# ホームポジションで特殊キーを入力

`矢印キー`,`Enter`,`Esc` などをホームポジションで押せる様にしておくと、便利です。
[AutoHotkey](https://www.autohotkey.com/) などの、キーバインドソフトを使うと良いでしょう。

私は AutoHotkey で、以下の設定をしています。
```ahk
vk1C & i::Up    ; 変換 + i → ↑
vk1C & k::Down  ; 変換 + k → ↓
vk1C & j::Left  ; 変換 + j → ←
vk1C & l::Right ; 変換 + l → →

vk1C & h::Enter ; 変換 + h → Enter
vk1C & u::Esc   ; 変換 + u → Esc
vk1C & o::BS    ; 変換 + o → BS

vk1C & n::Home	; 変換 + n → Home
vk1C & `;::End	; 変換 + ; → End
```

# フルパスでのやり取り

ソフト間の連携は、フルパスのコピーを使うと便利です。



## ファイラ
エクスプローラ(Winの標準ファイラ)の場合
* `Shift`+`アプリケーションキー` からフルパスをコピー出来る。
<!-- * HUT(クリップボード拡張)を使うと、ファイルのコピー時にフルパスのコピーが出来る。 -->
* ファイルのフルパスに、`\..` を付けると、フォルダへ移動できる。
  * [解説](https://qiita.com/kuone4/items/d21b4e9c5fe081990930)
  * `"` が付いていると、上手く動かない事に留意。

ただ、エクスプローラ(Winの標準ファイラ)よりも、
[As/R](https://all.undo.jp/asr/)や[Tablacus Explorer](https://tablacus.github.io/explorer.html)等のフリーのファイラを使う方が、利便性が高いです[^4]。
[^4]:メモ帳(Winの標準のエディタ)で、開発作業はしませんよね？

## VSCode

* パスのコピーは、`Ctrl+P` から、コマンド `copyFilePath` の実行で、出来る。
  * ショートカットキーを設定しておくと便利
* `Ctrl+O` → `Ctrl+V` → `Enter` で、コピーしたパスからファイルを開ける
  * ファイル選択ダイアログが出るのを待つのは煩雑なので、[拡張機能](https://marketplace.visualstudio.com/items?itemName=kuone.open-by-clipboard)を作った。

# 個別ソフト

## Google Chrome 拡張機能

* [Hit A Hint](https://chrome.google.com/webstore/detail/moly-hah/pjoacnohgednppackhamgfalpkffeeek)
  * キーボードのみで、簡単にリンクを飛べるようになる。
* [Smooth Key Scroll](https://www.smoothkeyscroll.com)
  * Alt,Ctrl の押下で、上下キーでのスクロールを、高速,低速に出来る。

## Google日本語入力[^5]
[^5]:他の日本語入力ソフトでも使えるはず。たぶん。

* 入力切替は、デフォルトでは `半角/全角キー` ですが、ホームポジションからは押しづらいです。
  より押しやすい物に割り当てると良いかと思います。
  * 私は、`Shirt`+`スペース` に割り当てています。
* カタカナ変換,英数変換などは、`F6`~`F10` で行えますが、同じ事がより押しやすい `Ctrl`+`U`,`I`,`O`,`P`,`T` でも行えます。



<!-- # ハードウェア

# エルゴノミクス(人間工学)デザインキーボード -->

# キーボード
人間の手は、自然な状態ではハの字になります。
通常のキーボードでは、これが真っ直ぐになるため、人間の手首などに負担が掛かります。

エルゴノミクス(人間工学)デザインのキーボードを使うと、負担が減らせます。


# その他


* ここに書いた以外にも、有用なショートカットは多々あります。
 書き切れないため割愛しますが、調べてみると良いかもしれません。
* ハードウェアも、色々と便利そうな物があります(検討しただけで、使っていないですが。)
  * ErgoDox
    * 親指で修飾キーを押せるのが、指への負担を小さく出来そう。
  * フットペダル
    * 手を話したくないなら、足を使えば良いじゃない？