昨年の秋に,MacBook Airを購入し,きれいな画面を見ながら,macOS専用アプリの起動や,ターミナルを介したコマンドを行っていました.
お盆休みに,コマンドライン周辺を見直しました.
シェルはzshです.そこで,WSL2やLinuxで使用している.zshrcなどのファイルを,そのまま転送してみたところ,いくつか不具合が出ました.
まずはmacOSのターミナルに限定した処理を記述できるようにします.vim .zshrc
を実行して中身を見たときのARCHIの記述は,利用可能なドライブレターを,zshのfunctionでのコードと同一でした.いったんvimを終了して,name -sr
を実行すると,出力は「Darwin 数.数」でした.
ということで,macOSのターミナルでzshを起動したときには,ARCHIの値はdarwinにしましょう.場合分けの処理は以下のようになりました.
if [ -f $ZDOTDIR/.archi.linux ]; then export ARCHI="linux" elif [ -f $ZDOTDIR/.archi.wsl ]; then export ARCHI="wsl" elif [ -f $ZDOTDIR/.archi.cygwin ]; then export ARCHI="cygwin" elif [ -f $ZDOTDIR/.archi.darwin ]; then export ARCHI="darwin" elif [ -f $ZDOTDIR/.archi.dummy ]; then export ARCHI="dummy" elif which uname >& /dev/null; then case "`uname -sr`" in Linux*icrosoft*); export ARCHI="wsl" ; touch $ZDOTDIR/.archi.$ARCHI ;; Linux*); export ARCHI="linux" ; touch $ZDOTDIR/.archi.$ARCHI ;; CYGWIN*); export ARCHI="cygwin" ; touch $ZDOTDIR/.archi.$ARCHI ;; Darwin*); export ARCHI="darwin" ; touch $ZDOTDIR/.archi.$ARCHI ;; *); export ARCHI="dummy" ; touch $ZDOTDIR/.archi.$ARCHI ;; esac else export ARCHI="dummy" fi
.zshrc.darwinの記述は以下の通りとしました.Homebrewはコマンドラインからインストール済みで,brew install ruby
を実行したときに「brewをすべて左手の指で打つには面倒だなあ」と思い,aliasを設定しました.
if [ -d /opt/homebrew/bin ] then PATH="/opt/homebrew/bin:$PATH" alias b="brew" alias bi="brew install" [ -d /opt/homebrew/opt/ruby/bin ] && PATH="/opt/homebrew/opt/ruby/bin:$PATH" fi alias sx="screen -xR"
次に,ls
を実行したときに,何やらエラーメッセージが表示されました.これは,.zshrcに
alias ls='ls -aFl --color --show-control-chars'
と書いていたのが原因で,--show-control-charsオプションを取り除いて保存し,zshを起動し直すことで,解消しました.
他にも細かな修正を行い,macOSのターミナルで何度もzshを起動して動作確認をしたあと,Dropboxを介してファイルをWSL2環境にコピーし,再度修正して確定としました.お盆休みの,よいひとときとなりました.