SumatraPDF のキーボードショートカットをカスタムしたい

# SumatraPDF のキーボードショートカットをカスタムしたい

バージョン 3.4.0 以降の [SumatraPDF][] では、コマンドパレットやユーザーによるキーボードショートカットの追加が出来るようになりました。

[sumatrapdf]: https://www.sumatrapdfreader.org/free-pdf-reader "Free PDF Reader - Sumatra PDF"

コマンドパレットが追加されたため、すべてのキーボードショートカットが割り当てられていなくても問題ありませんが、いくつか割り当てておくとより簡便になります。

また、SumatraPDF 特有なキーボードショートカットもあり、他のアプリのものと同じような操作感にしておきたいものもあります。

本記事では、SumatraPDF のキーボードショートカットをいくつかカスタムして、より使いやすくなるように考えます。

## Advanced Options...

左上の ☰ から、` 設定 > 詳細設定 ` をクリックすると、SumatraPDF-settings.txt が開かれます。これの `Shortcuts[]` 内に、キーボードショートカットを作成します。

```ini
Shortcuts []
```

これを構成するには、コマンド ID (`Cmd`) 毎にキー (`Key`) を指定する必要があります。

すべてのコマンド ID については、以下のページに詳しいです。

https://www.sumatrapdfreader.org/docs/Commands


[構成可能なキー][keyboard-shortcuts] は、`A-Z`、`a-z`、`0-9`、`Ctrl`、`Shift`、`Alt`、`Return`、`F1`\~`F24`、`+`、`-`、`Delete`、`Backspace`、`Insert`、`Home`、`End`、`Escape`、`Left`、`Right`、`Up`、`Down` です。

[keyboard-shortcuts]: https://www.sumatrapdfreader.org/docs/Customizing-keyboard-shortcuts#format-of-key-section "#Formats of Key section - Customizing keyboard shortcuts"

特に、アルファベットを単体で構成する場合、小文字と大文字は区別されます。例えば `d` と `D` は異なるキーボードショートカットです。（`D` は `Shift+D` と認識される）

設定ファイルを保存した直後から有効になります。また、無効なキーの場合、単にキーが有効になりません。

### 不要なキーボードショートカット

もしも不要なキーボードショートカットがあった場合、`CmdNone` を上から定義します。

例えば、検索画面を開くための `Ctrl+F` を無効化させたい場合、以下のようにします。

```ini
Shortcuts [
	[
		Cmd = CmdNone
		Key = Ctrl + f
	]
]
```

## 設定したいショートカット

次のような 11 のキーボードショートカットを構成します。

<details>
<summary> 設定したいショートカットキー（折りたたみ）</summary>

```ini
Shortcuts [
	[
		Cmd = CmdHelpAbout
		Key = v
	]
	[
		Cmd = CmdCheckUpdate
		Key = Ctrl + Shift + v
	]
	[
		Cmd = CmdHelpOpenManualInBrowser
		Key = F1
	]
	[
		Cmd = CmdCommandPalette
		Key = Ctrl + Shift + p
	]
	[
		Cmd = CmdExit
		Key = Ctrl + Shift + w
	]
	[
		Cmd = CmdAdvancedOptions
		Key = Shift + s
	]
	[
		Cmd = CmdShowInFolder
		Key = Alt + Shift + r
	]
	[
		Cmd = CmdCopyLinkTarget
		Key = Ctrl + Shift + c
	]
	[
		Cmd = CmdFindNext
		Key = Return
	]
	[
		Cmd = CmdFindPrevSel
		Key = Shift + Return
	]
	[
		Cmd = CmdFindMach
		Key = Alt + c
	]
]
```

</details>

次節では、ここで構成したキーボードショートカットを解説します。ショートカットの括弧内はデフォルトのキーボードショートカットです。


### 一般

|         コマンド ID          | キーボード<br>ショートカット | 説明                            |
| :--------------------------: | :--------------------------: | :------------------------------ |
|        `CmdHelpAbout`        |             `V`              | SumatraPDF のバージョン等の情報 |
|       `CmdCheckUpdate`       |        `Ctrl+Shift+V`        | アップデートの確認              |
| `CmdHelpOpenManualInBrowser` |             `F1`             | [マニュアル][manual-doc] を開く |
|     `CmdCommandPalette`      |  `Ctrl+Shift+P` (`Ctrl+K`)   | コマンドパレットの表示          |
|          `CmdExit`           |  `Ctrl+Shift+W` (`Ctrl+Q`)   | ウィンドウを閉じる              |
|     `CmdAdvancedOptions`     |          `Shift+S`           | SumatraPDF-settings.txt を開く  |

[manual-doc]: https://www.sumatrapdfreader.org/docs/SumatraPDF-documentation "SumatraPDF documentation"

### ファイル

|     コマンド ID     | キーボード<br>ショートカット | 説明                                         |
| :-----------------: | :--------------------------: | :------------------------------------------- |
|  `CmdShowInFolder`  |        `Alt+Shift+R`         | PDF のあるフォルダを開く                     |
| `CmdCopyLinkTarget` |        `Ctrl+Shift+C`        | ハイパーリンクのリンクターゲットをコピーする |
|    `CmdFindNext`    |        `Enter` (`F3`)        | 検索の次の箇所を表示                         |
|    `CmdFindPrev`    |  `Shift+Enter` (`Shift+f3`)  | 検索の前の箇所を表示                         |
|    `CmdFindMach`    |           `Alt+C`            | 検索で大文字小文字を区別する（検索画面内）   |

# 余談

SumatraPDF でキーボードショートカットをユーザーが作成できるようになり、かなり融通が効くようになりました。

今後のバージョンでも新たなコマンドは追加されるので、更新毎に注視していきたいです。

今回、構成していませんが、選択した文字列を Google 検索にかける `CmdSearchSelectionWithGoogle` や、Google 翻訳にかける `CmdTranslateSelectionWithGoogle` もあります。（DeepL 翻訳の場合は `CmdTranslateSelectionWithDeepL`）

## デフォルトのキーボードショートカット

頻繁に利用するであろうデフォルトのキーボードショートカットには、次のようなものがあります。

| キーボード<br>ショートカット | 説明                                     |
| :--------------------------: | :--------------------------------------- |
|           `Ctrl+W`           | ドキュメントを閉じる                     |
|           `Ctrl+O`           | ファイルを開く                           |
|             `R`              | ドキュメントをリロード                   |
|             `F2`             | ファイル名の変更                         |
|           `Ctrl+P`           | 印刷プレビューを開く                     |
|           `Ctrl+D`           | ドキュメントのプロパティを開く           |
|          `Ctrl+Tab`          | 右のタブに移動（最右の場合は最左に移動） |
|             `I`              | 白黒反転                                 |
|          `Shift+I`           | ページ番号の表示                         |
|        `G`、`Ctrl+G`         | 特定のページに移動                       |
|             `M`              | カーソルポジションの表示 (pt, mm, in)    |
|             `F`              | フルスクリーン表示                       |

特に、3.4.0 以降で新たに追加された白黒反転の `I` はかなり有用です。