こだわりのないdotfiles

利用している dotfiles のリポジトリは非公開にしているので、dotfiles の供養。
シェルは zsh、ターミナルは MacOS のデフォルトのターミナルを利用します。

dotfiles

ホームディレクトリに .dotfile ディレクトリを作成して、以下のように設定ファイルを配置します。

.dotfile
├── .zsh
│   ├── [plugin] zsh-autosuggestions
│   ├── [plugin] zsh-syntax-highlighting
│   ├── zsh-darwin.zsh
│   ├── zsh-linux.zsh
│   └── zsh-custom.zsh
└── .zshrc

※実際は git clone するだけです。

環境別の設定

MacOS、Linux での使用を想定しているので .zshrc に OS ごとの設定ファイルを読み込むように指定します。

case ${OSTYPE} in
    darwin*)
        source $HOME/.zsh/zsh-darwin.zsh
        ;;
    linux*)
        source $HOME/.zsh/zsh-linux.zsh
        ;;
esac
if [ -e $HOME/.zsh/zsh-custom.zsh ]; then
    source $HOME/.zsh/zsh-custom.zsh
fi

zsh-darwin.zshzsh-linux.zsh には LANG などの環境変数や ls の色の調整などを記述します。
環境ごとの個別設定 (PATHなど) は zsh-custom.zsh に書き込むと管理しやすいです。

プラグインの設定

あると便利なプラグインを2つ .dotfile/.zsh にクローンします。

あとは .zshrc に読み込む設定を追加します。

source $HOME/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source $HOME/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh

コマンド実行時間の表示

コマンドを打った時の時刻を表示したいので、StackOverflow にあったコードを利用します。

# Show current time when a command is started
# ref. https://stackoverflow.com/a/14084584
preexec () {
  DATE=`date +"%H:%M:%S on %Y-%m-%d"`
  C=$(($COLUMNS-28))
  echo -e "\033[1A\033[${C}C \033[1;37m [${DATE}] \033[0m"
}

設定したら下記のように表示されます。便利!

$ echo $SHELL                                        [22:47:11 on 2024-08-06] 
/bin/zsh

リンクを貼る

ファイルができたら設定ファイルを読めるようにシンボリックリンクを貼ります。

$ cd ~/.dotfile
$ ln -s $PWD/.zshrc $HOME/.zshrc
$ ln -s $PWD/.zsh $HOME/.zsh

最後に

WarpWeve Terminal など綺麗で便利なターミナルもありますが、ターミナルでガッツリ作業するわけではないので、これくらいが個人的には合ってそうだなと思いました。