4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

zoxideでPowerShellのディレクトリ移動をいい感じにしてみる

Last updated at Posted at 2022-08-01

CUIでのディレクトリ移動を便利にするzコマンドPowerShellで利用できるようにしたZLocationのインストールついて、以前、下記記事で紹介しました。

PowerShellモジュールのPSFzfとZLocationをつかってみる

今回、zコマンドと同様の機能を提供するRust製のコマンドzoxideをみかけたので、こちらを利用してPowerShellのディレクトリ移動をいい感じにしてみます。

なおzoxideコマンドはfzfコマンドとの連携も提供しているため本記事ではfzfのインストールも行います。

ドキュメント

今回の環境

  • Windows 10 21H2
  • PowerShell 7.3.0-preview.5
  • zoxide v0.8.2
  • fzf 0.30.0

zoxideのインストール(webinstall.dev)

#2023/03/11追記

本記事執筆時点ではWindowsへのインストール方法として公式ドキュメントにwebinstall.devを使ったインストール方法が記載されていましたが、今現在、readmeの内容はwingetに切り替わっていました。

> The recommended way to install zoxide is via wingetとあるので これからインストールする場合は、wingetを利用すればよいかと思います。

#以上、追記おわり

Add Winget installation in the README

zoxide installationWindowsへのインストール方法の記載があります。

コマンド(webinstall.dev)からインストール もしくは scoopなどの各種パッケージ管理でのインストール方法が記載されています

ここではコマンド(webinstall.dev)でのインストールを実施してみます。

なおwebinstall.devでインストールすると~/.local/binzoxideがインストールされました。

zoxideインストール(webinstall.dev)
# webinstallでzoideをインストール
# Windows PowerShellを呼んでいるが、本記事でのWindows PowerShellのバージョンはv5.1
curl.exe -A "MS" https://webinstall.dev/zoxide | powershell

image.png

実行結果のIMPORTANT -- READ MEをみるとインストール処理の中でPATHの変更も実施しているようです。

カレントセッションにはPATHが反映されないので、カレントセッションのPATHを更新するかセッションを再起動しまて環境変数PATHを読み込み直します。
(今回はWindows Terminal上で動かしていたので、Windows Terminalを再起動しました)

PowerShellの起動Profileにzoxideを追加する

Step 2: Add zoxide to your shell

今回インストールしたzoxidev0.8.2のため下記を起動プロファイルに追加しました。

$profile
# For zoxide v0.8.0+
Invoke-Expression (& {
    $hook = if ($PSVersionTable.PSVersion.Major -lt 6) { 'prompt' } else { 'pwd' }
    (zoxide init --hook $hook powershell | Out-String)
})

上記コマンドが起動処理で何をやっているかといえば、function __zoxide_z__zoxide_zi を定義して、それぞれのfunctionにalias z , zi を設定していました。

image.png

fzfのインストール

起動処理で登録されるalias zifzfと連携するaliasとなるためfzfコマンドをインストールします。

junegunn/fzf

ここではWindows用のバイナリをダウンロードしてPATHを通しておきます。

fzf - Releases

バイナリをダウンロードしてPATHを通してバージョン確認した図。

image.png

なおNote: zoxide only supports fzf v0.21.0 and above. と記載があるのでインストールするバージョンは最新をいれておきます。

z と zi を実行してみる。

今回は 事前にc:\temp\foo\barというディレクトリを用意してzziで移動してみます。


# 事前に用意したディレクトリc:\temp\fooに移動
cd c:\temp\foo

# 事前に用意したディレクトリc:\temp\foo\barに移動
cd c:\temp\foo\bar

# ~に移動
z

# zコマンドでc:\temp\foo\barがマッチ、移動する
z foo bar

# ziでfzfで移動先ディレクトリの選択が表示
zi

zコマンドでc:\temp\foo\barに移動し、ziコマンドでc:\temp\fooに移動してみました。

image.png

履歴を表示・編集する

zoxideでは移動した事のあるディレクトリの情報を管理していますが、下記で履歴を表示・編集できます。

# 一覧表示
zoxide query -ls

# 指定したPATHを削除
zoxide remove <<PATH>>

# 一覧表示してremoveしたPATHが消えている事を確認
zoxide query -ls

image.png

総評

zコマンドをPowerShellで利用できるようになる、zoxideコマンドを見かけたので今回使用してみました。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?