zsh

A collection of 2 posts
complete:13: command not found: compdef
mac

complete:13: command not found: compdef

いつのまにかシェルのセッション開くたびcomplete:13: command not found: compdefが出て死にそうだった 原因 Google Cloud SDKインストール時にzshの設定ファイルに追記されるsource '$HOME/google-cloud-sdk/completion.zsh.inc'が原因だった($HOMEのところはハードコードされてると思う) これはgcloudコマンドを補完するために必要っぽい よくわからないけど、これが原因でzsh-completionsがうまく動かなくなっていた というかcomplete:13: command not found: compdefって出てるけど、completeコマンド自体、bashのビルトインコマンドでzshには含まれてない にもかかわらず$HOME/google-cloud-sdk/completion.zsh.incを見るとbashcompinitをロードしてるしcompleteコマンドを使っている その辺が原因なのかな…。zsh用にcompletion.zsh.
1 min read
Change emoji of prompt by each host name
zsh

Change emoji of prompt by each host name

.zshrcをDropboxに置いて、そこにシンボリックリンクを貼ることでどのマシンでも同じ環境になるようにしている その代償として、ぱっと見どのホストにいるのかわかりづらくなった(自分の場合host名が違うけど、ぱっと見文字の違いって案外わかりづらい。そこ以外色とか同じだし) ので、プロンプトに絵文字を置いて、ホストごとにその絵文字が変わるように雑に設定した Solution こんなかんじでhostnameコマンドでホスト名拾って自分の各マシンのホスト名ごとに条件分岐している あと、絵文字のコード見ても何の絵文字かさっぱりなのでコメントで絵文字名を入れている どれにも一致しない場合は、ブタ鼻! if [[ $(hostname | cut -d'.' -f1) == 'hogehoge' ]]; then local emoji=$'\xF0\x9F\x8D\xA3' # sushi elif [[ $(hostname | cut -d'.' -f1) == 'piyopiyo' ]]; then local emoji=$'\xF0\x9
1 min read