nvim-tree 完全理解

## はじめに
[ITソルーション室 Advent Calendar 2024](https://adventar.org/calendars/10607) の12/15 の投稿です．

[nvim-tree](https://github.com/nvim-tree/nvim-tree.lua) っていろいろなコマンドがあって把握しきれませんよね．今回はドキュメントに掲載されているコマンド全てを翻訳してまとめました．

## 表記
キーの表記はおなじみですがわからない人向け．
- `<C-x>`
    - ctrl + x です．`<C-c>`ならctrl+c，`<C-T>` の場合は大文字も加味して ctrl+shift+t です．
- `<BS>`
    - backspace キーです．
- `<CR>`
    - Carriage Return key の略でいわゆる enter キーです．

## コマンド一覧
特に断りがない場合はファイルについての説明はディレクトリについても有効．

### `<C-]>`：ディレクトリに移動
あるディレクトリ上にカーソルがある時に`<C-]>`を押すとそのディレクトリの中に移動する．

### `<C-e>`：現在のウィンドウで開く
nvim-tree の領域でファイルを開く．フォルダに対しては`<CR>`と同じ挙動

### `<C-k>`ファイルの情報を表示
ポップアップにフルパス，サイズ，最終アクセス時間，最終修正時間，作成時間が表示される．

### `<C-r>`：ファイル名が空白の状態から名前変更
ファイルを選択した状態で`<C-r>`を押すと，
```
Rename to /hogehoge/
```
と表示されるので
```
Rename to /hogehoge/piyo.txt
```
と変更するとそのファイルの名前が`piyo.txt`に変更される．

### `<C-t>`：新しいタブで開く
あるファイルを選択している状態で`<C-t>`を押すと新しいタブでそのファイルが開かれる．

### `<C-v>`：ウィンドウを縦分割して開く
あるファイルを選択している状態で`<C-v>`を押すとウィンドウを横に分割（横並び）した右側にそのファイルが開かれる．

### `<C-x>`：ウィンドウを横分割して開く
あるファイルを選択している状態で`<C-x>`を押すとウィンドウを縦に分割してそのファイルが開かれるらしい（動作しなかった）．

### `<BS>`：ディレクトリを畳む
あるディレクトリ内で`<BS>`を押すと，直近の親ディレクトリを畳む．連続して押すと，さらに上の階層のディレクトリを畳む．

### `<CR>`：開く
選択しているファイルを開く．ディレクトリならそのディレクトリを開いたり畳んだりできる．

### `<Tab>`：プレビューを表示する
`<CR>` に近い挙動．カーソルがそのファイルに移動せず nvim-tree のままでファイルの内容を確認できるところが異なる．

### `>`：次の兄弟ファイルに移動
基本的に下方向への移動．ディレクトリが開かれている場合はその中のファイルをスキップして移動できる．

### `<`：前の兄弟ファイルに移動
基本的に上方向への移動．ディレクトリが開かれている場合はその中のファイルをスキップして移動できる．

### `.`：VimCommandを実行
Run Command                

### `-`：上の階層を表示
表示されているディレクトリの上の階層を表示する．

### `a`：新規ファイル作成
あるファイルを選択している状態で`a`キーを押すと，
```
Create file /hogehoge/
```
と出るので，後ろにファイル名を入力してEnterを押すと新規ファイルが作成される．
例
```
Create file /hogehoge/newFile.txt
Create file /hogehoge/newDirectory/  後ろにスラッシュを付ける
```
### `bd`：ブックマークしたファイルを削除
'm'キーでブックマークしたファイルを削除する．カーソルはブックマークしたファイル上にある必要はない．

### `bt`：ブックマークしたファイルをゴミ箱に移動
'm'キーでブックマークしたファイルをゴミ箱に移動するする．カーソルはブックマークしたファイル上にある必要はない．'bd'とほぼ同じ操作．

### `bmv`：ブックマークしたファイルを移動
ファイルを1つ以上ブックマークしている状態で'bmv'キーを押すと，
```
Move to: /hogehoge
```
と出るので，後ろに移動先のディレクトリを入力してEnterを押すとブックマークしたファイルが移動する．
例
```
Move to: /hogehoge
Move to: /hogehoge/piyo
```

`B`：バッファ上のファイルを表示・非表示
Bキーを押すたびにバッファ上のファイルが表示されたり非表示になったりする．バッファ上のファイルとは，開いているファイルのこと．

### `c`：ファイルのコピー
あるファイルを選択している状態でcキーを押すと，そのファイルがコピーされる．その後目的のディレクトリ・ディレクトリ内のファイル上にカーソルを移動してpキーを押すと，そのディレクトリ内にペーストできる．

### `C`：Toggle Filter: Git Clean らしい．
### `[c`：Prev Git らしい．
### `]c`：Next Git らしい．

### `d`：ファイルの削除
あるファイルを選択している状態でdキーを押すと，
```
Remove hoge.txt? y/N:
``` 
と表示され，yを入力すると選択したファイルが削除される．

### `D`：ゴミ箱に移動
ゴミ箱に移動したいファイルにカーソルを合わせて'D'を押すと，そのファイルをゴミ箱に移動できる．

### `E`：表示されているフォルダを全て展開する．
nvim-treeで表示されているフォルダを全て展開する．

`e`：ファイル名の名前部分のみを変更
あるディレクトリ内のファイルにカーソルがあるとき，eキーを押すと，
```
Rename to hoge
```
と出るので，to 以下を修正してEnterを押すとファイル名が変更される．拡張子が除いて表示されるので，ファイル名のみを変える場合はrキーよりも便利．ディレクトリに対してはrキーを用いた場合と同じ挙動になる．

### `]e`：次のエラーへ
エラー出ているファイルへカーソルを移動する．

### `[e`：前のエラーへ
]eとは逆方向へカーソルを移動する．

### `F`：ライブフィルタリングの解除
ライブフィルタリングが解除され，元の表示に戻る．

### `f`：ライブフィルタリング
fを押した後に文字列を入力すると，その文字列が含まれるファイルのみが表示されるようになる．Fキーで解除される．

### `g?`：操作方法の表示
操作方法を表示する．sキーを押すとキーマップ順に辞書順で昇順ソートされる．もう一度押すと機能の説明順に辞書順で昇順ソートされる．

### `gy`：絶対パスをコピー
選択したファイルの絶対パスをコピーする．

### `ge`：拡張子を除いたファイル名をコピー
選択したファイルの名前部分をコピーする．ディレクトリの場合はyと同じ挙動．

### `H`：隠しファイルの表示・非表示
Hを押すと隠しファイルが非表示になる．再度押すと表示される．

### `I`：gitignore の表示・非表示切り替え
Iを押すと.gitignoreに記述されているファイルが非表示になる．再度押すと表示される．

### `J`：兄弟ディレクトリの末尾に移動
あるディレクトリ内にカーソルがあるときにJキーを押すと，カーソルがそのディレクトリ内の末尾に移動する．

### `K`：兄弟ディレクトリの先頭に移動
あるディレクトリ内にカーソルがあるときにKキーを押すと，カーソルがそのディレクトリ内の先頭に移動する．

### `L`：Toggle Group Empty らしい．

### `M`：ブックマークしたファイルの表示・非表示
Mキーを押すとブックマークしたファイルのみの表示になる．再度押すと他のファイルも表示されるようになる．

### `m`：ブックマークに登録・登録解除
mキーを押すと選択しているファイルがブックマークに登録される．再度押すと登録が解除される．

### `o`：開く
Enterと同じ挙動．画面を分割している場合は開くウィンドウを聞かれるので，開きたい方のウィンドウを選択する必要がある．

### `O`：規定のウィンドウで開く
画面を分割しているときにoと異なる挙動になる．oキーを使った場合と異なり，開くウィンドウを選ぶことはできない．

`p`：貼り付け
目的のディレクトリ・ディレクトリ内のファイル上にカーソルがある時にpを押すと，cキーで選択したファイルを貼り付けられる．

`P`：親ディレクトリにカーソルを移動する．
あるディレクトリ内のファイル・フォルダにカーソルがあるとき，Pキーを押すことでカーソルが親ディレクトリに移動する．

### `q`：nvim-treeを閉じる
nvim-tree画面が閉じる．

### `r`：ファイル名の変更
あるディレクトリ内のファイル・フォルダにカーソルがあるとき，rキーを押すと，
```
Rename to hoge.txt
```
と出るので，to 以下を修正してEnterを押すとファイル名が変更される．

### `R`：更新
最新ののファイルの状態を反映する．

### `s`：ファイルを開く
GUIのエクスプローラでファイルを開いたときと同じ挙動．

### `S'検索
ファイル名を入力すると一致するファイルにカーソルが移動する．完全一致なので`/`キーによる検索と同じようには使えないが，tabキーによる補完が使える．

### `u`：ファイル名をフルパスで変更
あるディレクトリ内のファイル・フォルダにカーソルがあるとき，uキーを押すと，
```
Rename to /hoge/fuga.txt
```
と出るので，to 以下を修正してEnterを押すとファイル名が変更される．フルパスなので元ファイルとは異なるディレクトリに移動させることもできる．存在しないディレクトリを用いたパスにした場合，新しいディレクトリが生成されその位置にファイルが移動される．

### `U`：Toggle Filter: Hidden らしい．
### `W`：展開しているフォルダを全て折りたたむ．
nvim-treeで展開しているフォルダを全て折りたたむ．'E'の逆動作．

### `x`：ファイルの切り取り
切り取りたいファイルにカーソルを合わせてxキーを押すと，そのファイルが切り取られる．その後目的のディレクトリ・ディレクトリ内のファイル上にカーソルを移動してpキーを押すと，そのディレクトリ内に貼り付けられる．

### `y`：ファイル名をコピー
選択したファイルの名前をコピーする．

### `Y`：相対パスをコピー
選択しているファイルに対するneovimを開いているディレクトリからの相対パスをコピーする．