twitterでおのかちお氏(鍵垢なのでここでは紹介できないが)がexa
というlsの代替コマンドを試してみている、ということでスクショをアップしており、これがなかなか良さそうであったので、探してインストールしてみました。
website
の説明によると、
A modern replacement for ls.
トのことで、色をつけれたり、早かったり、tree viewができたり、Gitのステータスを表示できたりするらしい。
macの場合、homebrew
でインストールできるようなので早速インストールしてみます。
very easyですね。使ってみましょう。

なるほど、デフォルトの表示はlsと同じくgrid viewなんですね。ホームにディレクトリしかないのでわかりにくいですけど、字が太いですね。あとklaussinani/hyper-pokemon
を使っている都合で、色は表示されません・・・
アイコン付きで表示してみましょう。アイコンを表示したい場合は--iconsオプションをつければ良い、とのこと。

おや、表示されないですね。これは困った。まぁこの手の問題は(見た目から言っても)フォントがインストールされてないために発生しているのだろう、とあたりをつけつつ、issueを検索します。
するとどうやら
nerd fonts
というフォントがアイコン表示用に使用されているようです。これをインストールしてみます。
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 | $ 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の両方に同名のパッケージがあったようです。詳細を見てみましょう。
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 | ❯❯ ~
$ 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からインストールすることにします。
| 1
 | $ brew install homebrew/cask-fonts/font-hack-nerd-font
 | 
無事インストールできたので、改めて--iconsを試してみます。。。。まだ表示されないですね。hyperの設定で、nerd fontsを追加します。Font Bookを見ると、Hack Nerd Fontとして登録されているようなので、これを~/.hyper.jsの適切な項目に追加します。
| 1
 | 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を付けた場合の表示順が- lsと- exaでは異なるので、- -hでヘッダを表示することにします
これで設定したalias
は次の様になりました。
| 1
2
3
4
 | alias ls="exa -h"
alias la="ls -aF"
alias ll="ls -lF"
alias lla="ls -laF"
 | 
これでしばらく使ってみることにします。