ディレクトリ内のファイルをステータスラインに表示する方法

Brogramming with Tom
現在の移動しているディレクトリに、どんなファイルがあるのかをコマンドやEnterキーを打たなくても分かるので、もしかしたら便利かも...。

photo credit: ryanoshea via photopin cc


内容的には、以下の様なシェルスクリプトを作ります。


#!/bin/bash
## ディレクトリ内にあるファイルをランダムで1つだけ出力する

# ディレクトリの中のファイル数を表示する
max=`ls -a $PWD | wc -l | tr -d ' '`

# ファイル数のうちのランダムの数字を得る
num=`jot -r 1 3 $max`

# ディレクトリの中にあるファイル1つだけ表示する
ls -a $PWD | sed -e "$num!d"
*一応、ディレクトリ自体もファイルです。


以上のファイルを権限を与え、パスの通った場所に保存し、シェルを再起動します。


# ファイルの権限を変更する
chmod +x lsf

# パスを調べる
echo $PATH

# ファイルをコピーする
sudo cp lsf /usr/local/bin/

# パスの通った場所に移動する
tr : '\n' <<<$PATH | grep "local/bin" | head -n 1 | pbcopy && i=`pbpaste`; cd $i

# シェルを再起動する
exec $SHELL



そして、設定ファイルを以下の様な感じで編集します。重要なのは、 #(lsf)の部分です。

set-option -g status-interval 2

set-option -g status-left "#(~/dotfiles/tmux-powerline/status-left.sh)#[bg=red]#[fg=black]⮀#[bg=red]#[fg=white] mem #(used-mem) %% #[bg=green]#[fg=red]⮀#[bg=green]#[fg=white] #(lsf) #[bg=black]#[fg=green]⮀"






ただし、上記イメージは、 tmux-powerlineを導入していることを前提にしています。