Powerline 導入メモ ( MBP Catarina)

Powerline を導入した

結構記事が乱立していてよくわからなかったので、自分が行ったことをメモっておく。 基本的なやりたいこととしては、tmux に powerline を導入することなのであしからず (今後さらにいじるかもしれない...)

ここでは最低限の導入を行ってみた。

Powerline 用の fonts をインストールする

公式リポジトリの Quick installationにしたがってインストールを行う。

On other environments, you can copy and paste these commands to your terminal. Comments are fine too.

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh

私は git プロジェクトは $HOME/projects 下で管理しているので、この下に fonts がくるようにクローンする。インストールやアンインストールのスクリプトは、fonts に移動して打つ。

  • TIPS 🖇 : uninstall
bash uninstall.sh

なぜかこっちは実行可能形式じゃなかった

フォントの指定は [terminal.app] > [ターミナル] > [環境設定] > [プロファイル] > [フォント] から行う。ubuntu user なので、Ubuntu Mono derivative Powerline に変更した。

Powerline のインストールとセットアップ

こちらも公式のガイド pip installation を参考にインストール

# if you need:
pip install --upgrade pip

pip install powerline-status
# add ⬇️ to .tmux.conf
run-shell "powerline-config tmux setup"

Links

かわいい terminal をつくろう

terminal をかわいくするぞ (固い意思)

prompt

プロンプトは terminal の入力受付の部分です。

標準だと ↓ こんな感じなのではないでしょうか

user@Macbook-Pro:~ $

こんな感じ ↓ にしたいと思います。

sudachi@DaiMac:~
(*'-') < 

設定をいじっていきます

私は bash を普段使いしているので .bashrc を編集します。

同じ bash でも mac を使っていると .bash_profile という設定ファイルで管理している方も おられるかもしれません。

私は Ubuntu をいじることもあり、「設定は .bashrc で全て管理したい」ということから .bash_profile には、「もし .bashrc があったら、それを読み込んでね」とだけ書いています。

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

もちろん、この辺はご自身の好みでいじっていただければと思います。

zsh をお使いの方は .zshrc などでしょうし...

  • 補足

本当は、

  • .bash_profile の方が .bashrc より先に読まれる
  • bash_profile はユーザがログインした時に1回だけ読まれるが、.bashrcbash 起動時に毎回読まれる

などの違いがありますが、mac を普段使いしていて、そんなにたくさん設定を書くことはないですし、 この macbook 使うの、だいたい僕だけだし...と思って、.bashrc に書いています。( サボりです。 )

さて、前置きが長くなりましたが、プロンプトを変えていきます。

方法としては、.bashrcPS1 という変数名で、環境変数として設定すれば OK です。

標準ぽいモノを最初にいくつか紹介します (私の好みにより ubuntu like です)

途中に $(__git_ps1) という謎の変数が出てきますが、git init されているディレクトリでは、カレントブランチをプロンプトの一部に表示するために付けています。

( TODO: この辺もできたら書きます... )

export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '

実はしばらくは ↑ を少しいじったりして使っていました

ディレクトリをフルパスで表示したい 場合は \w の部分を \W とすれば出来ますし、 どっかに \n を入れると改行できて、fish をお洒落に使いこなされる方の気分になれます(なれません)。

さて、これをもっとかわいくしましょう。 復讐になりますが、以下のような感じにしたいのでした。

sudachi@DaiMac:~
(*'-') < 

こんな感じになりました。かわいい

設定の記載だけ先に書きますね。

export PS1='\[\033[32m\]\u@\h\[\033[01m\]:\[\033[34m\]\W\[\033[31m\]$(__git_ps1)\[\033[00m\]\n'"(*'-') < "

こんな感じです。

最後の顔のところはシングルコーテーションが入ってしまっているので、 ちょっと理想からは外れますが、ダブルコーテーションで括って繋げました...

ちなみに、処理が正常終了 ( == exit code が 0) か / そうでないか (Error, ここでは、乱暴に exit code 0 以外で決め打ち)でプロンプトを変えることもできます。

export PS1='\[\033[32m\]\u@\h\[\033[01m\]:\[\033[34m\]\W\[\033[31m\]$(__git_ps1)\[\033[00m\]\n'

exitstatus() {
    if [[ $? == 0]]; then
        echo "(*'-') < "
    else
        echo "(*x_x) < "
    fi
}

export PS1=$PS1'$(exitstatus)'

なんて めんどうな いや、物好きな ことをすると

# 前回正常終了
sudachi@DaiMac:~
(*'-') < sl

# 正常終了でない
bash: sl: command not found
sudachi@DaiMac:~
(*x_x) < 

という風に分岐できました。かわいい

これの詳しい作り方などは、別エントリーでまとめようと思います...(長くなりそうなので...)


terminal のカラーテーマを変えよう

現状、以下の2択かなぁ...と思っています。 (ドラキュラはあまり好みではありませんでした (-人-) )

  1. Iceberg

参考: 気分転換にTerminal.appの配色を変えてみる?暗青系のテーマ「Iceberg」を移植しました

  1. Solarized

参考: 【Mac】ターミナルの配色設定は「Solarized」がおしゃれで見やすくておすすめ

( 今は、ダークテーマの Basic をいじって使っています...導入したら追記予定です (-人-) )


terminal app を変えよう

特にこだわりがなければ、mac 標準の terminal.app を使えばいいと思います。 ネットの記事では賛否両論ありますが、そんなに不便ではないですし、 コマンドの受け皿 (送り先?) としては十分な機能などは持ていると思います。

ただ、「より良いデザインを!」とか「宗教上の理由で...」という方がいらっしゃいましたら 私の知っている terminal app を2つ紹介します。

  • iTerm2

    • 私の観測範囲では、そこそこの方が使っている (乗り換えている) イメージがあります。確かに標準のものに比べると、カラーテーマがデフォルトでたくさんご用意してあったり、キーバインドなどいろいろ取り替えられて便利ではあります。私も一時期使ってました。
  • Hyper

    • Electron ベースのターミナルアプリらしいです。ちょっと使ってみたいけど、まだ手を出したことはありません...

Links

プロンプトの編集

Xcode command-line-tools がインストールできなくてビビった

Xcode command-line-tools のインストールでのトラブル記録です

macbook-pro で Xcode の commandline-tools をインストールしようとしたら失敗しました...なんで...

エラーの内容

mac を新しくセットアップするとき

git

とかやると、「実行するには Xcode command line tools が必要です」という警告が出る。

そういえば、と思い、インストールしようとするとエラーになった。


内容は「このソフトウェアは、現在ソフトウェア・アップデート・サーバから入手できないため、インストールできません」だそうだ。

f:id:comeonknowhow:20201012174519p:plain
error

Xcode command-line-tools のインストールでコケたのは初なので、ちょっとドキドキした。

原因的なこと

macports? とかいうのが悪いらしい。

macOSをアップデートすると、macportsが動かない にあるように、macOS をアップデートしたら macports が動かない、という例はあるようだ。

ちなみに、この記事を拝見すると、わかることがある。

解決策の第一歩が「xcode-select --install」なのだ。 まさにうまくいかない元凶である。

ちなみに、こちらも同じ コンピュータから別のコンピュータへのMacPortsの移行

これだとデッドロックなので、他の方法で Xcode command-line-tools をインストールする方法がないか、探してみる。

次に拝見したのは xcode-select --installに失敗した という記事。

xcode でつまづくのはあなただけではない。 辛抱強くがんばろう。

こちらCommand Line Tools と検索したところから Xcode command-line-tools をインストールできるらしい。

自分の使っている PC の環境にあった command-line-tools をインストールしよう。

僕の解決方法

実は僕は上記の作業をやっていない。

なぜか?ソフトウェアアップデートで、Xcode command-line-tools が提示されたからだ。

f:id:comeonknowhow:20201012174556p:plain
solution

運がよかったのか、こういう物なのかわからない。 参考までに、一応、ソフトウェアアップデートで来ていないかを見ると良いと思う...

Mac の初期設定

Mac を買ったら最初にする設定

ソフトウェアアップデート

まずはソフトウェアアップデートですね。 ダウンロードに時間もかかったりするので、最初にダウンロードだけでもしておくのが良いかと思います。

(必要なら、OS のクリーンインストールなども...)


本体設定 もろもろ

$ rm ~/Downloads/.localized | rm ~/Documents/.localized | rm ~/Applications/.localized | rm ~/Desktop/.localized | rm ~/Library/.localized | rm ~/Movies/.localized | rm ~/Pictures/.localized | rm ~/Music/.localized | rm ~/Public/.localized
$ killall Finder

Terminal

  • Meta key として Option を使用

    • [ターミナル] > [環境設定] > [プロファイル] > [キーボード] から
  • 必要に応じて iTerm2 をインストール


Install するソフト


開発系もろもろ

Xcode command-line-tools

  • インストール
xcode-select --install
  • command-line-tools にあるコマンドを実行とかしても OK.
git  # とか
gcc  # とか

HomeBrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

以下は、Homebrew を使って管理していきます。

Git

Xcode command-line-tools をインストールすると、Apple の git が入ります。

しかし、brew で入れておくとバージョンアップが簡単にできたり、git-completion, git-prompt なども一気に入って便利なので brew を使ってインストールします。

brew install git

echo '' >> ~/.bashrc
echo 'source /usr/local/etc/bash_completion.d/git-prompt.sh' >> ~/.bashrc
echo 'source /usr/local/etc/bash_completion.d/git-completion.bash' >>  ~/.bashrc
echo 'GIT_PS1_SHOWDIRTYSTATE=true' >> ~/.bashrc

Emacs

残念ながら Emacs はデフォルトではインストールされていません。というか、されなくなってしまったようです。Catalina から。 Vim は入ってるのに...

私は状況や気分に応じて両方使い分けをするので (というか Emacs がメインなので) Emacs も入れておきます。

brew install emacs

ちなみに上記だとコンソール (terminal) 上で動くやつで、nyan-mode がちゃんと表示されません。 (-nw: no Window mode がデフォルト、みたいな感じ)

開発時の精神の安定、ひいては、生産性のためにも、某カップケーキに貫通した例のネコは必要ですので、アプリケーションもインストールしておきます。

brew cask install emacs

これで安心です。

もし、以下のように怒られが発生してしまう場合は:

Error: It seems there is already a Binary at '/usr/local/bin/emacs'.

一度、バイナリ版の Emacs をアンインストールして対応しましょう。

brew uninstall emacs

brew cask install emacs

emacs 
emacs -nw

# ちなみに私は emacs -nw の alias として
# enw を登録しています
# alias enw='emacs -nw'

Java (AdoptOpenJDK (8) )

Java そのものと、後続の Scala 環境構築のために Java 環境を整えます。

brew tap AdoptOpenJDK/openjdk

brew cask install adoptopenjdk8

echo 'export JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.bashrc

source ~/.bashrc

java -version
javac -version

sbt (Scala)

brew install sbt

# 以下を行うと projects, target というフォルダがカレント下にできるので注意
sbt -version
sbt console

Python3

brew install python

python3 -V
pip3 list
  • additional
echo '' >> ~/.bashrc
echo 'alias python="python3"' >> ~/.bashrc
echo 'alias pip="pip3"' >> ~/.bashrc
  • ちなみに仮想環境は venv 派です。
python3 -m venv myenv

# python 仮想環境のアクティベート
source myenv/bin/activate

昔は anaconda 使ってましたが、モッサリしているのと、プロンプトが汚れるので、ナチュラル派に転身。

Go

基本的には goenv でバージョンを管理しています。

Homebrew でもインストールできるのですが、最新版よりかなり遅れたバージョンしか使えないので、私は 公式 github の Installation guideに従う方法をお勧めします。

# basic github checkout (推奨)
git clone https://github.com/syndbg/goenv.git ~/.goenv

# Homebrew を用いたインストール (非推奨)
brew install goenv

「goenv の」PATH を通す

echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.bashrc
echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(goenv init -)"' >> ~/.bashrc
exec $SHELL -l

「go (関連) の」PATH を通す

echo 'export GOPATH="${HOME}/go"' >> ~/.bashrc
echo 'export GOBIN="$GOPATH/bin"' >> ~/.bashrc
echo 'export PATH="$GOBIN:$PATH"' >> ~/.bashrc
echo 'export GO111MODULE=on' >> ~/.bashrc

仮想環境の作成

# go の version を指定してインストール
goenv install 1.15.1

# local に go の version を設定
goenv local 1.15.1

確認

# 以下 2つが一致しているかをチェック
cat .go-version
go version

プロジェクト事始め

Node.js

brew install nodebrew

nodebrew -v  # nodebrew 動作 & version 確認
nodebrew ls-remote  # 使用可能な node version の確認

mkdir -p ~/.nodebrew/src

nodebrew install-binary stable

nodebrew ls

nodebrew use {install した node の version}


echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bashrc

node -v  # node version & 動作確認

コミュニケーション系アプリ

  • LINE ( App Store から )
  • Chatwork
  • Slack
  • Discord

IDE