terminator + fish + fishermanの導入

■環境

Linux Mint 19.1 "Tessa" - MATE (64-bit)
ubuntu 19.10


※以降のaptコマンドはUbuntuの場合はsudoを付けてください。

terminatorインストール

terminatorをインストールします。

apt install terminator

(※2019年11月追記)
Terminatorもいいですが、Tilixというターミナルも良いです。
詳しくは↓こちら↓
Linux用ターミナル『Tilix』

fishインストール

fishをインストールします。

apt install fish

インストール後、反映するため一度ログアウトします。

なお、Terminatorはデフォルトのウィンドウサイズが微妙なので変更した方が良いです。
Terminatorのデフォルトサイズを変更する

fishをデフォルトシェルに設定

$ grep fish /etc/shells  
/usr/bin/fish   ←表示されなかったら`which fish`の結果を/etc/shellsに追記する  
$ chsh -s /usr/bin/fish  

fishermanのインストール

fishermanというfishのプラグイン管理ツールがあります。

fishermanのgithubベージにインストールコマンドが載っています。
https://github.com/fisherman/fisherman

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish  
$ fisher -v  
fisher version 3.1.1 ~/.config/fish/functions/fisher.fish  

fisher -vでバージョンが出ない場合は、一回ターミナルを開き直してください。

テーマの変更

fishはテーマを変更することで見栄えが変えられます。
どのようなテーマがあるかは、以下ページが参考になります。
https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md

私は「bobthefish」というテーマを利用しており、以下手順でインストールしています。

$ fisher add oh-my-fish/theme-bobthefish     # fisher旧バージョンではfisher addではなくfisher install

bobthefishではPowerLineのフォントが必要なので、そちらもインストールします。

2020/09/02追記
windows terminalでは下記のコマンドでインストールしたフォントが上手く使えませんでした。
Cascadia Codeというフォントをインストールしてください。
https://docs.microsoft.com/ja-jp/windows/terminal/cascadia-code
ダウンロードしたttfファイルを右クリックからインストールすると使えるようになります。

$ git clone https://github.com/powerline/fonts.git  
$ fonts/install.sh  
$ rm -rf fonts  

上記コマンド実施後、ターミナルアプリの設定でインストールしたフォントを指定してください。
terminatorであればターミナル上で右クリックをして「設定」を開き、
「プロファイル>一般>Font」にてフォントを「○○○ for Powerline」のどれかに変更してください。
フォントを変更できない場合は「システムの固定幅フォントを使う」のチェックを外してください。

個人的には「Meslo LG M for Powerline」が好きです。

その他プラグイン

fishermanを使って他にも様々なプラグインをインストールできます。

■peco

pecoをインストールします。
(ubuntuの場合はaptの前にsudoを付けてください)

apt install peco
fisher add oh-my-fish/plugin-peco

インストール後、fishのコンフィグファイル(~/.config/fish/config.fish)へ以下のように記載します。
fishのコンフィグファイルが存在しない場合は新規作成してください。

function fish_user_key_bindings
  bind \cr 'peco_select_history (commandline -b)' # peco
end

【使い方】
「Ctrl + R」でコマンド履歴検索画面が開きます。
検索画面では直近のコマンドから選択することもできますし、文字列を入力すれば該当の文字列を含むコマンド履歴に絞ることもできます。

■ghq

まずgolangをインストールします。

※2020年7月追記
Linux Mint 20ではapt install golangだけで大丈夫です。

※2020年3月追記
デフォルトでインストールできるgolangのバージョンはLinux Mintは1.10,Ubuntuは1.12なのですが(2020年3月現在)
ver.1.12ではghqインストール時にエラーが出てしまうので新バージョンのgolangを取得できるようにします。

GitHubのgolangのwikiを見て作業します。
https://github.com/golang/go/wiki/Ubuntu

2020年3月現在の手順は以下の通りでした。

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go

インストールが完了したらgoの設定をします。

echo 'set -x GOPATH $HOME/go' >> ~/.config/fish/config.fish
echo 'set -x PATH $GOPATH/bin $PATH' >> ~/.config/fish/config.fish
mkdir -p ~/go/bin
source ~/.config/fish/config.fish

続いてghqをインストールします。
ghqのfisherman用リポジトリは元々yoshiori/fish-peco_select_ghq_repositoryなのですが
そちらだとgitリポジトリ遷移時にシェルが多重で開くようになってしまったので
シェルが多重で開かない版を自分のリポジトリ(mildjester/fish-peco_select_ghq_repository)に用意してあります。

※yoshioriさんのソースに不具合があるのではなく、あるべき形になったらLinux系のシェル(?)と相性が悪くなっただけだと思います。

go get github.com/motemen/ghq
fisher add mildjester/fish-peco_select_ghq_repository

インストール後、fishのコンフィグファイル(~/.config/fish/config.fish)へ以下のように記載します。
上記のpecoの設定に追記する前提としています。

function fish_user_key_bindings
  bind \cr 'peco_select_history (commandline -b)' # peco
  bind \c] peco_select_ghq_repository # ghq
end

【使い方】
ghq get {gitリポジトリURL} コマンドで新規gitリポジトリをローカルに取得します。
(git cloneghq getに置き換えるだけ)

「Ctrl + ]」でghqで管理しているgitリポジトリを選択してディレクトリへ移動できます。
デフォルトではghq getで取得したリポジトリは~/ghq配下に格納されるのですが
~/.gitconfigに以下を記載しておくと任意の階層に格納するよう変更できます。

[ghq]
    root = 好きなディレクトリ