GNU nano ショートカット チートシート

:::note warn
使用している nano の version は 5.9 です
:::

`Meta`キーは Windows だと`Alt`、Mac だと`Esc`です。
Mac のメタキーを変えたい場合は、[メタキーが Esc なのは不便なので Option に変えたい - Qiita](https://qiita.com/ohakutsu/items/e15ba9d58ca64f935c69)を参照。

## File handling

| ショートカット | 説明                                                             |
| :------------: | :--------------------------------------------------------------- |
|    Ctrl + S    | ファイルを確認なしで保存する                                     |
|    Ctrl + O    | 現在のバッファ（またはマークした範囲）をディスクへ書き込み       |
|    Ctrl + R    | 他のファイルから現在のバッファ（または新しいバッファ）に読み込み |
|    Ctrl + X    | 現在のバッファを閉じて nano を終了                               |

## Editing

| ショートカット | 説明                                                                 |
| :------------: | :------------------------------------------------------------------- |
|    Ctrl + K    | 現在の行（またはマークした範囲）を切り取ってカットバッファに格納する |
|    Meta + 6    | 現在の行（またはマークした範囲）をコピーしてカットバッファに格納する |
|    Ctrl + U    | カットバッファの内容をカーソル位置に貼り付ける                       |
|    Meta + T    | カーソル位置からファイル終端までを切り取る                           |
|    Ctrl + ]    | 現在の単語の補完を試みる                                             |
|    Meta + 3    | 現在行（またはマークされた行）をコメント/コメント解除                |
|    Meta + U    | 直前の操作を取り消す (undo)                                          |
|    Meta + E    | 取り消した直前の操作をやり直す (redo)                                |

## Search and replace

| ショートカット | 説明                                 |
| :------------: | :----------------------------------- |
|    Ctrl + Q    | 正規表現で文字列を後方に向かって検索 |
|    Ctrl + W    | 正規表現で文字列を前方に向かって検索 |
|    Meta + Q    | 次を検索（前方へ）                   |
|    Meta + W    | 次を検索（後方へ）                   |
|    Meta + R    | 正規表現置換                         |

## Deletion

| ショートカット | 説明                                     |
| :------------: | :--------------------------------------- |
|    Ctrl + H    | カーソルの前の文字を削除                 |
|    Ctrl + D    | カーソル位置の文字を削除                 |
|   Meta + Bsp   | カーソルから単語の先頭までを削除する     |
|   Ctrl + Del   | カーソルから次の単語の先頭までを削除する |
|   Meta + Del   | 現在行（またはマークされた範囲）を捨てる |

## Operations

| ショートカット | 説明                                                |
| :------------: | :-------------------------------------------------- |
|    Ctrl + T    | 関数または外部コマンドの実行                        |
|    Ctrl + J    | 段落を均等割付                                      |
|    Meta + J    | ファイル全体を均等割付                              |
|    Meta + B    | 構文チェッカを起動 (利用可能な場合)                 |
|    Meta + F    | プログラムを呼び出しバッファを 整形/編集/操作します |
|    Meta + :    | マクロの記録を開始/停止                             |
|    Meta + ;    | 直前に記録されたマクロを実行する                    |

## Moving around

| ショートカット | 説明                           |
| :------------: | :----------------------------- |
|    Ctrl + B    | 前の文字へ戻る                 |
|    Ctrl + F    | 次の文字へ進む                 |
|    Ctrl + ←    | 前の単語へ戻る                 |
|    Ctrl + →    | 次の単語へ進む                 |
|    Ctrl + A    | 現在行の先頭へ移動             |
|    Ctrl + E    | 現在行の末尾へ移動             |
|    Ctrl + P    | 前の行へ移動する               |
|    Ctrl + N    | 次の行へ移動する               |
|    Ctrl + ↑    | 前のテキストブロックへ移動する |
|    Ctrl + ↓    | 次のテキストブロックへ移動する |
|    Ctrl + Y    | 前のページへ移動               |
|    Ctrl + V    | 次のページへ移動               |
|   Meta + \     | ファイルの先頭行へ移動         |
|    Meta + /    | ファイルの最終行へ移動         |

## Special movement

| ショートカット | 説明                                               |
| :------------: | :------------------------------------------------- |
|    Meta + G    | 指定位置へ移動                                     |
|    Meta + ]    | 対応する括弧へ移動                                 |
|    Meta + ↑    | 文中のカーソル位置を変えずに一行上にスクロールする |
|    Meta + ↓    | 文中のカーソル位置を変えずに一行下にスクロールする |
|    Meta + <    | 前のバッファに切替え                               |
|    Meta + >    | 次のバッファに切替え                               |

## Information

| ショートカット | 説明                       |
| :------------: | :------------------------- |
|    Ctrl + C    | カーソル位置を表示         |
|    Meta + D    | 単語数、行数、文字数を表示 |
|    Ctrl + G    | ヘルプを表示               |

## Various

| ショートカット | 説明                                             |
| :------------: | :----------------------------------------------- |
|    Meta + A    | カーソル位置から始まる単語をマーク               |
|      Tab       | 現在行（またはマークされた行）をインデント       |
|  Shift + Tab   | 現在行（またはマークされた行）のインデントを縮小 |
|    Meta + N    | 行番号 有効/無効                                 |
|    Meta + P    | 空白を表示 有効/無効                             |
|    Meta + V    | 後に続く特殊キーをそのまま入力                   |
|    Ctrl + L    | 画面の更新                                       |
|    Ctrl + Z    | エディタを一時中断する (有効な場合)              |

# Ref

- [nano – Text editor](https://www.nano-editor.org/)
- [Cheatsheet for nano](https://www.nano-editor.org/dist/latest/cheatsheet.html)