rustで書かれたlsの代替コマンドexaをインストールしてみた


4 min read
rustで書かれたlsの代替コマンドexaをインストールしてみた

twitterでおのかちお氏(鍵垢なのでここでは紹介できないが)がexaというlsの代替コマンドを試してみている、ということでスクショをアップしており、これがなかなか良さそうであったので、探してインストールしてみました。

websiteの説明によると、

A modern replacement for ls.

トのことで、色をつけれたり、早かったり、tree viewができたり、Gitのステータスを表示できたりするらしい。

macの場合、homebrewでインストールできるようなので早速インストールしてみます。

$ brew install exa

very easyですね。使ってみましょう。

なるほど、デフォルトの表示はlsと同じくgrid viewなんですね。ホームにディレクトリしかないのでわかりにくいですけど、字が太いですね。あとklaussinani/hyper-pokemonを使っている都合で、色は表示されません・・・

アイコン付きで表示してみましょう。アイコンを表示したい場合は--iconsオプションをつければ良い、とのこと。

おや、表示されないですね。これは困った。まぁこの手の問題は(見た目から言っても)フォントがインストールされてないために発生しているのだろう、とあたりをつけつつ、issueを検索します。

するとどうやらnerd fontsというフォントがアイコン表示用に使用されているようです。これをインストールしてみます。

$ brew tap homebrew/cask-fonts
==> Tapping homebrew/cask-fonts
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-fonts'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 35658 (delta 8), reused 9 (delta 5), pack-reused 35639
Receiving objects: 100% (35658/35658), 6.07 MiB | 3.34 MiB/s, done.
Resolving deltas: 100% (25786/25786), done.
Tapped 924 casks (973 files, 7.8MB).
$ brew cask install font-hack-nerd-font
Updating Homebrew...
Error: Cask font-hack-nerd-font exists in multiple taps:
  homebrew/cask-fonts/font-hack-nerd-font
  caskroom/fonts/font-hack-nerd-font

おや、エラーが出ましたね。今回追加したhomebrew/cask-fontsというtapと元々あったcaskroom/fontsというtapの両方に同名のパッケージがあったようです。詳細を見てみましょう。

❯❯ ~
$ brew cask info homebrew/cask-fonts/font-hack-nerd-font
font-hack-nerd-font: 2.1.0
https://github.com/ryanoasis/nerd-fonts
Not installed
From: https://github.com/Homebrew/homebrew-cask-fonts/blob/master/Casks/font-hack-nerd-font.rb
==> Name
Hack Nerd Font (Hack)
==> Artifacts
Hack Italic Nerd Font Complete.ttf (Font)
Hack Bold Nerd Font Complete.ttf (Font)
Hack Bold Italic Nerd Font Complete Mono.ttf (Font)
Hack Bold Italic Nerd Font Complete.ttf (Font)
Hack Regular Nerd Font Complete.ttf (Font)
Hack Regular Nerd Font Complete Mono.ttf (Font)
Hack Italic Nerd Font Complete Mono.ttf (Font)
Hack Bold Nerd Font Complete Mono.ttf (Font)

$ brew cask info caskroom/fonts/font-hack-nerd-font
font-hack-nerd-font: 2.1.0
https://github.com/ryanoasis/nerd-fonts
Not installed
From: https://github.com/caskroom/homebrew-fonts/blob/master/Casks/font-hack-nerd-font.rb
==> Name
Hack Nerd Font (Hack)
==> Artifacts
Hack Italic Nerd Font Complete.ttf (Font)
Hack Bold Nerd Font Complete.ttf (Font)
Hack Bold Italic Nerd Font Complete Mono.ttf (Font)
Hack Bold Italic Nerd Font Complete.ttf (Font)
Hack Regular Nerd Font Complete.ttf (Font)
Hack Regular Nerd Font Complete Mono.ttf (Font)
Hack Italic Nerd Font Complete Mono.ttf (Font)
Hack Bold Nerd Font Complete Mono.ttf (Font)

ふむ、どうやらどちらもリポジトリ・バージョンともに同じようです。単純にダブっているだけの用なので、今回はドキュメントに従いhomebrew/cask-fontsからインストールすることにします。

$ brew install homebrew/cask-fonts/font-hack-nerd-font

無事インストールできたので、改めて--iconsを試してみます。。。。まだ表示されないですね。hyperの設定で、nerd fontsを追加します。Font Bookを見ると、Hack Nerd Fontとして登録されているようなので、これを~/.hyper.jsの適切な項目に追加します。

fontFamily: 'Ricty, "Hack Nerd Font", Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',

表示されました!やったぜ!

-lと合わせて使ってみましょう。

なぜかこのタイミングでディレクトリへのアクセス権を求められました(もっと前に要求されているべきでは?)が、無事表示できました。ちょっとアイコンと文字の間が詰まっている気がしますが、こまかい調整をするのが面倒なのでこのままにしておきます。特に不便ないし。

割と良い感じなので、-lを付けたときについてはアイコンあり、付けてないときはアイコンなしでlsのaliasにしてしまいましょう。すでにlsはエイリアスを設定していますので、これをちょっと置き換える形で設定します。

  • -pオプションはexaには実装されていないようなので、これは取り除きます
  • exa-aオプションはls-A相当のようなので、-aを使用します
  • exa -lは標準でls -lh的な表示をしてくれるのでこれも取り除きます
  • -lを付けた場合の表示順がlsexaでは異なるので、-hでヘッダを表示することにします

これで設定したaliasは次の様になりました。

alias ls="exa -h"
alias la="ls -aF"
alias ll="ls -lF"
alias lla="ls -laF"

これでしばらく使ってみることにします。


Gmail Filter as Code
Previous article

Gmail Filter as Code

@yamamoto_febcさんのブログ記事で、jessfraz/gmailfiltersというツールを知りました。なんでも、GmailのフィルタをTOMLで管理するツール、とのこと(実際の使用例などはkakakakakkuさんの記事で紹介されています)。 それは素敵っぽい、ということで触ってみたところ、実際良い物っぽい感じはあったものの、TOMLというのが(個人的に)つらいし、releasedなバージョンではexportができない(機能自体はmasterにあるものの、一年前に機能開発されてからリリースが打たれていない、という点がちょっと不安)という二点が気になりました。 特にTOMLはどうにも好きになれず、やはりYAMLで書きたい、という気持ちが強かった+GWの自由研究が決まらなかったので自前で書き直し、これをGmail as

AKG LYRAを購入した
Next article

AKG LYRAを購入した

ようやく緊急事態宣言が解除され、むやみにガジェットを買う理由がなくなってしまった皆様、いかがお過ごしでしょうか。 新型コロナウイルス感染症拡大防止の観点から、ヘイシャでも数ヶ月ほどリモートワーク(余談ですがWFH、という字面をついついWTFと空目してしまうのは私だけでしょうか)をしてきたわけですが、弊宅にはまともなマイクというものがありませんでした。しばらくはかなり前に購入したWebカメラ、BuffaloのBSW20KM15の音声入力を使っていたのですが、何度か聞き取りにくい、と言われたので(大半は問題ないと言ってくれたのですが、まぁ理由付けのようなものです)、ある程度のUSBマイクを購入することを決意しました。 とはいえ、社内外でおすすめされたオーディオテクニカ AT2020USB+はそれこそみんなリモートワークをしているのが理由、と言わんばかりにどこを見ても在庫がない、という状態です。在庫復活はいつになることやら、、、と思いながらSOUNDHOUSEを眺めていたところ、AKG


Related Articles

cut vs. parameter expansion
1 min read

GO TOP

🎉 You've successfully subscribed to something tech.!
OK