fix
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Rikuoh Tsujitani 2024-10-29 20:24:31 +09:00
parent 920298a5c3
commit e9081cbd6e
Signed by: riq0h
GPG key ID: 010F09DEA298C717

View file

@ -1,5 +1,5 @@
---
title: "Rust製CLIファイラ「yazi」を使う"
title: "Rust製CLIファイラ「Yazi」を使う"
date: 2024-10-29T20:19:09+09:00
draft: false
tags: ["tech"]
@ -7,7 +7,7 @@ tags: ["tech"]
ターミナル上からすべてを操作したいと願う者にとって、ファイラは是非とも備えておきたい代物の一つである。いかに我々が小洒落た種々のランチャやコマンドで日常の用を足せるとしても、ファイラの機能性に助けられる機会は少なくない。そのたびに任意のGUIファイラを起動してマウスをポチポチとやるのは少々惜しい。
CLIのファイラはすでに色々ある。古くには[ranger](https://github.com/ranger/ranger)があるし、Goで書かれたミニマルな[lf](https://github.com/gokcehan/lf)というのもある。実際、後者の方をたまに使っていた。とはいえ、まあ、せっかくなので新しいものを試したい。そこで、今回は[yazi](https://github.com/sxyazi/yazi)を選んだ。それにしても自分がRustを書いているわけじゃないのにRust製って言われたら気になってしまうのはなんでだろうね。マイナー界のミーハーかな。
CLIのファイラはすでに色々ある。古くには[ranger](https://github.com/ranger/ranger)があるし、Goで書かれたミニマルな[lf](https://github.com/gokcehan/lf)というのもある。実際、後者の方をたまに使っていた。とはいえ、まあ、せっかくなので新しいものを試したい。そこで、今回は[Yazi](https://github.com/sxyazi/yazi)を選んだ。それにしても自分がRustを書いているわけじゃないのにRust製って言われたら気になってしまうのはなんでだろうね。マイナー界のミーハーかな。
## 導入
@ -25,9 +25,9 @@ cargo install --locked yazi-fm yazi-cli
## 設定
各機能の概要は[ここ](https://yazi-rs.github.io/features)を観た方が早い。対応するアプリケーションの起動やファイルのコピー、リネームはもちろんのこと、先に挙げた他のCLIツールと連携した応用的な操作も行える。複数のファイル名を一括で編集できるバルクリネームも地味に便利だ。以前は[mmv](https://github.com/itchyny/mmv)を使っていたが、こっちにまとめられる見込みが高い。
一方、僕の感覚ではチカチカ光るstatuslineやカラースキームがやや疎ましい。幸いにもyaziはカスタマイズ性に長けているので、適宜自分好みに設定を加えて改良を施していく。このツールの設定ファイルには基本設定を司る`yazi.toml`と、外観を司る`theme.toml`、そして外部プラグインの読み込みと設定を担当する`init.lua`が存在する。他にキーマップを変更する`keymap.toml`もあるが、本稿では扱わない。
一方、僕の感覚ではチカチカ光るstatuslineやカラースキームがやや疎ましい。幸いにもYaziはカスタマイズ性に長けているので、適宜自分好みに設定を加えて改良を施していく。このツールの設定ファイルには基本設定を司る`yazi.toml`と、外観を司る`theme.toml`、そして外部プラグインの読み込みと設定を担当する`init.lua`が存在する。他にキーマップを変更する`keymap.toml`もあるが、本稿では扱わない。
まず`~/.config/`に`yazi`というディレクトリを設ける。残念ながら勝手には作ってくれない。次にカラースキームを選ぶ。yaziではflavorsと呼ばれており、[ここ](https://github.com/yazi-rs/flavors)から種類を確認できる。最近、僕はVimのカラースキームをeverforestに変えたので、こっちもそれに合わせておく。
まず`~/.config/`に`yazi`というディレクトリを設ける。残念ながら勝手には作ってくれない。次にカラースキームを選ぶ。Yaziではflavorsと呼ばれており、[ここ](https://github.com/yazi-rs/flavors)から種類を確認できる。最近、僕はVimのカラースキームをeverforestに変えたので、こっちもそれに合わせておく。
```zsh
ya pack -a Chromium-3-Oxide/everforest-medium
@ -95,7 +95,7 @@ ya pack -a yazi-rs/plugins:no-status
require("no-status"):setup()
```
注意点として、上記の`init.lua`は導入したプラグインのディレクトリ内にある方ではなく`yazi`フォルダ直下に自ら作成した方を指している。記述後にyaziを起動するとプラグインの名称通りstatuslineが消えている。結果、僕にとってはまことに好ましいミニマルな外見と相成った。
注意点として、上記の`init.lua`は導入したプラグインのディレクトリ内にある方ではなく`yazi`フォルダ直下に自ら作成した方を指している。記述後にYaziを起動するとプラグインの名称通りstatuslineが消えている。結果、僕にとってはまことに好ましいミニマルな外見と相成った。
![](/img/346.png)
@ -103,6 +103,6 @@ require("no-status"):setup()
## 総評
既存のファイラと比べて他のCLIツールとの連携に長けている印象を受けた。たとえばデフォルト設定で起動中にZキーを押すとfzfが立ち上がり、ファジーファインダー経由で目的のディレクトリに移動できる。移動後はファイラ特有の操作を引き続き行えるのでfzf単体よりも利便性が高い。同様に、fdやzoxideとの連携にも対応している。
この手のCLIツール群とファイラはしばしば対立的に扱われがちだが、yaziの世界観においては両者がうまく融和できているように感じる。なにより、痒いところに手をサイボーグ化してでも届かせると言わんばかりの豊富なカスタマイズ性はターミナル界の住民にとても馴染み深い。
この手のCLIツール群とファイラはしばしば対立的に扱われがちだが、Yaziの世界観においては両者がうまく融和できているように感じる。なにより、痒いところに手をサイボーグ化してでも届かせると言わんばかりの豊富なカスタマイズ性はターミナル界の住民にとても馴染み深い。
こうしてターミナルの内側の世界が改善されるたび、新たに手にした道具でさらなる改善を推し進めんとして際限なく時間が投入されていく。なんらかの作業効率を上げるという本来の目的は忘れ去られ、あたかも辺境の惑星に残置された自動機械のごとく我々はひたすら環境を改善し続けるのだ。