Windows10で快適なfishシェル環境構築

  • 13
    いいね
  • 0
    コメント

image.png

はじめに

本記事ではWindows10を対象に、快適なターミナル環境を設定します。
本環境のメリットは、以下の3つです。

  1. 視認性が高く、モダンなテーマ(ログインするだけでテンションが上がる)
  2. 強力な補完機能(Tabを連打するだけで簡単)
  3. 日常使いのためのエイリアス(ひたすら効率化)

環境

  • Windows 10 (Version 1607)
  • Windows Subsystem for Linux
  • Bash on Ubuntu on Windows
  • git 2.11.0
  • fish 2.4.0
  • fisherman 2.9.0
  • ConEmu (version: 161206)

本記事では、Bash on Ubuntu on Windowsで環境を作っていきます。
参考:Bash on Ubuntu on Windowsをインストールしてみよう!

1.fishのインストール

fish-shellです。apt-get でサクッと入ります。

$ sudo apt-add-repository ppa:fish-shell/release-2
$ sudo apt-get update
$ sudo apt-get install fish

使い方は以下を参照
参考:fish2.4日本語ドキュメント:すぐ使える25の便利機能と実例

2.fishermanのインストール

fish用パッケージマネージャです。
公式に従って、以下のコマンドで入ります。

$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs git.io/fisherman

3.agnosterのインストール

カッコいいfishのテーマです。以下のコマンドで入ります。

$ fisher install omf/agnoster

image5.png
...見辛い、とても見辛い。この辺りがBash on Ubuntu on Windowsの限界ですね。
フォントとターミナルカラーを設定しましょう。

4.Powerline fontのインストール

本記事では、視認性が高く、agnosterテーマが文字化けしないSauce Code Powerlineフォントをインストールします。

$ git clone https://github.com/powerline/fonts.git
$ mv fonts /mnt/c/

Cドライブ直下にfontsフォルダが移動したと思うので、
C:¥fonts¥SourceCodePro¥Sauce Code Powerline Regular.otf
をダブルクリックし、フォントをインストールしてください。
image7.png

5.ConEmuのインストール

Windows用タブ付きコンソールエミュレータです。
公式からDownload ConEmu Stable, Installer (32-bit, 64-bit)を選択して、
exeファイルをDLし、インストールしてください。

6.ConEmuの設定

ConEmuを起動し、右上メニューのSetting...から設定をします。

[Main]の設定では、Main Console fontを先ほどインストールしたSauce Code Powerlineに設定し、Monospaceのチェックを外します。(文字化け対策)
image2.png

[Startup]>[Tasks]の設定では、以下のようにCommandsを設定してください。タスク名、アイコン等はお好みです。

%windir%¥system32¥bash.exe ~ -new_console:t:"Fish" -cur_console:p -c fish
image3.png

その後、[Startup]で先ほど設定したタスク名を選択します。
image8.png

最後に、[Colors]設定です。
用意されているSchemesから<Solarized (Luke Maciak)>を選択し、
右下の[Save Settings]をクリックすれば設定完了です。
image4.png

7.見た目完成

ConEmuを再起動すると、素晴らしい環境が現れます。
image.png

8.プラグインの設定

ここでは、非常に便利なfishのプラグインを3つ紹介します。

edc/bass

fish標準では、bashの&&等の記法が使えないのですが、edc/bassプラグインを使えば対応できます。

$ fisher edc/bass

fzf

Ctrl + Rでコマンド履歴を検索できるようになります。めちゃくちゃ便利です。

$ fisher fzf
$ __fzf_install

z

zコマンドで、ディレクトリ移動がかなり捗ります。

$ fisher z

9.その他(config.fishの設定)

.bashrc相当の設定は以下から。

$ vim ~/.config/fish/config.fish

参考に筆者のconfig.fishの一部を掲載します。
いろいろ検索して、最適なfish環境を作り上げてください。

## vimで開く
alias vi='/usr/bin/vim'

# cd > ls
function cd
  builtin cd $argv
    ls -a
end

# git related shortcut
alias g="git"
alias gd="git diff"
alias ga="git add"
alias gca="git commit -a -m"
alias gcm="git commit -m"
alias gbd="git branch -D"
alias gp="git push"
alias gb="git branch"
alias gcob="git checkout -b"
alias gco="git checkout"
alias gba="git branch -a"
alias glog="git log --graph --date=iso --pretty='[%ad]%C(auto) %h%d %Cgreen%an%Creset : %s'"
alias gll="git log --pretty=format:'%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]' --decorate --numstat"

参考

*1) 2017年お手軽なのに格好良くて最強のWindowsターミナル環境構築。「Windows8.1にcmder+Powerline」にて
http://qiita.com/hmcGit/items/98b80507406cf25c10b4
*2) 詳解 fishでモダンなシェル環境の構築(fish,tmux,powerline,peco,z,ghq,dracula)
http://qiita.com/susieyy/items/ac2133e249f252dc9a34