## 背景
[[AWESOME TUIs]]を見て[[Yazi]]が気になったのでなんとなく見てみたら良さそうだったから使い始めてみた。
[[Neovim]] + [[oil.nvim]] で基本的に満足していたが、たまに[[Finder]]を使わなければいけないことがあり、操作感やキーバインドが全然あわない & [[Karabiner-Elements]]で変更しようとすると[[Raycast]]などに悪影響が出て辛い... という状況だったのですがってみた。
## 環境
| 対象 | バージョン |
| ---------------- | ----------------------------- |
| [[macOS]] | 15.6.1 |
| [[Ghostty]] | 1.1.4-main+3e79c4b7 |
| [[Yazi]] | 25.5.31 (Homebrew 2025-05-30) |
| [[ffmpeg]] | 8.0 |
| [[jq]] | 1.8.1 |
| [[fd]] | 10.2.0 |
| [[ripgrep]] | 14.1.1 |
| [[fzf]] | 0.63.0 |
| [[zoxide]] | 0.9.8 |
| [[ImageMagick]] | 7.1.2-2 |
| [[7-zip]] (p7zip) | 17.05 |
| [[resvg]] | 0.45.1 |
## インストール
インストールページの方法に従う。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://yazi-rs.github.io/webp/logo.webp" />
<span class="link-card-v2-site-name">yazi-rs.github.io</span>
</div>
<div class="link-card-v2-title">
Installation | Yazi
</div>
<div class="link-card-v2-content">
How to install Yazi on various operating systems.
</div>
<a href="https://yazi-rs.github.io/docs/installation"></a>
</div>
余計なものは入れずに本体だけ入れた。
```console
brew install yazi
```
[[Poppler]]、[[resvg]]と `font-symbols-only-nerd-font` はインストールされていなかったのでしておく。
```console
brew install poppler resvg font-symbols-only-nerd-font
```
## 設定
`~/.config/yazi/yazi.toml`
### 隠しファイルの表示
ないと困るので。
```toml
[mgr]
show_hidden = true
```
## キーバインド
`~/.config/yazi/keymap.toml`
```toml
[mgr]
prepend_keymap = [
]
```
### Spaceは外す
`v` と `V` でもできるから不要。それよりは[[2キーバインド]]として使いたい。
### `o` は create
[[oil.nvim]]だと `o` で行追加してそのまま追加するので。
### forwardとbackは `<C-i>` `<C-o>`
[[Neovim]]にあわせる。
### `_` でgitルート
[[oil.nvim]]にあわせる。
### ESC 1回で入力モードを終了させる
テンポが悪いし、あそこで[[Neovim]]の[[ノーマルモード]]っぽいことしたいことはない。
https://yazi-rs.github.io/docs/tips#close-input-by-esc
## よく使う機能
- `s` 検索 (カレントディレクトリ配下)
- `z` zoxide で最近のディレクトリに移動
- `<CR>` [[smart-enter.yazi]]
- `a` ファイル、ディレクトリ作成
- `r` リネーム
- `y` コピー
- `x` 切り取り
- `p` 貼り付け
- `-` 親ディレクトリに移動
- `~` ホームディレクトリに移動
- `g<Space>` パスを指定してディレクトリ移動
- `<C-o>` 戻る
- `<C-i>` 進む
## 使わない機能
- `f` フィルター
- 常時持続するものなので使いにくい
- [[smart-filter.yazi]]も癖があって使いにくい
- マウス
- 一応使えることには意義がある
- 右クリックで `open` なのは違和感だが
- スクロールとか地味に良い
## 気になった機能
- `v` で好きに選択して `r` でrename
- エモいし便利
- 選択やヤンクの対象が分かりやすいのも非常にいい
- 画像プレビュー
- クオリティ高い
## プラグイン
### [[smart-enter.yazi]]
必須。これがないと[[oil.nvim]]と頭の切り替えをする必要が出てくる。
> [[ディレクトリなら中に移動、ファイルなら開く (Yazi)|ディレクトリなら中に移動、ファイルなら開く]]
### [[smart-paste.yazi]]
ファイルをそこそこ移動したいときは結構便利。[[Yazi]]はそのような操作をするときにも利用されると思うので、必要。
https://yazi-rs.github.io/docs/tips#smart-paste
### [[full-border.yazi]]
ボーダー少なめもクールだが、ボーダーがある方が引き締まって好み。なくてもいい。
### [[git.yazi]]
[[Git]]ステータスは出しておいて損はないと思うので。バージョン管理しているリポジトリなら基本的に[[Neovim]]を使うので必須ではないと思う。
### 採用を見送ったもの
#### [[smart-filter.yazi]]
普通に操作ミスる。ディレクトリガッツリ潜りたいときやファイルを開きたいときは、[[Yazi]]より[[Neovim]]も使うことも多いし。
#### [[starship.yazi]]
リポジトリの[[Git]]の状態を確認するのに欲しかったけど、2行目に表示しているせいか表示されなかった。。
![[2025-09-01-00-18-10.avif|frame]]
*ターミナルの表示*
![[2025-09-01-00-18-39.avif|frame]]
*starship.yaziの表示 (欲しい情報がほぼ表示されない)*
#### [[lazygit.yazi]]
機能はいい感じだが、[[Lazygit]]から更に別のツールを開くとターミナルに戻って操作を受け付けなくなってしまうので。
ちなみに以下のキーマップを設定すればすべて解決する。`shell` コマンド強い...。
```toml
[mgr]
prepend_keymap = [
{ on = ["<Space>", "g"], run = "shell --block -- lazygit" },
]
```
## テーマ
テーマは `~/.config/yaml/theme.toml` で設定できる。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://yazi-rs.github.io/webp/logo.webp" />
<span class="link-card-v2-site-name">yazi-rs.github.io</span>
</div>
<div class="link-card-v2-title">
theme.toml | Yazi
</div>
<div class="link-card-v2-content">
Learn how to configure your Yazi theme.
</div>
<a href="https://yazi-rs.github.io/docs/configuration/theme"></a>
</div>
...が、Flavorsを使ったほうが楽なのでそちらを使う。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://yazi-rs.github.io/webp/logo.webp" />
<span class="link-card-v2-site-name">yazi-rs.github.io</span>
</div>
<div class="link-card-v2-title">
Flavors (BETA) | Yazi
</div>
<div class="link-card-v2-content">
Learn how to use Yazi flavors.
</div>
<a href="https://yazi-rs.github.io/docs/flavors/overview"></a>
</div>
ここで一覧を見られる。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
GitHub - yazi-rs/flavors: Some Yazi flavors maintained by community.
</div>
<div class="link-card-v2-content">
Some Yazi flavors maintained by community. Contribute to yazi-rs/flavors development by creating an account on G ...
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/7be74ba2b96a5128ea3cc06bae89ef10b1cb768068f7870b7e652adb6a112d6e/yazi-rs/flavors" />
<a href="https://github.com/yazi-rs/flavors"></a>
</div>
色々試したけど結局設定しなかった。
## プレビュー画像の表示サイズを上げる
[[toggle-pane.yazi]]を使う。
`yazi/yazi.toml`
```toml
[preview]
max_width = 1920
max_height = 1920
```
https://yazi-rs.github.io/docs/configuration/yazi#preview.max_width
キャッシュが残っていると変わらないので注意。
```console
yazi --clear-cache
```
`<C-p>` はプレビューの意味合いを込めて。
`yazi/keymap.toml`
```toml
[mgr]
prepend_keymap = [
{ on = "<C-p>", run = "plugin toggle-pane max-preview" },
]
```
## ブックマーク
[[bunny.yazi]]を使う。
`yazi/init.lua`
```lua
require("bunny"):setup({
hops = {
{ key = "/", path = "/" },
{ key = "t", path = "/tmp" },
{ key = "d", path = "~/Desktop", desc = "Desktop" },
{ key = "D", path = "~/Documents", desc = "Documents" },
{ key = "c", path = "~/.config", desc = "Config files" },
{ key = "i", path = "~/Library/Mobile Documents/com~apple~CloudDocs/image" },
},
})
```
`yazi/keymap.toml`
```toml
prepend_keymap = [
{ on = "<Space>", run = "plugin bunny" },
]
```
## クリップボード
[[system-clipboard.yazi]]を使う。[[Clipboard Project]]が必要。
```console
brew install clipboard
```
> [[クリップボードを使ってコピー貼り付け (Yazi)|クリップボードを使ってコピー貼り付け]]