読者です 読者をやめる 読者になる 読者になる

in Antarctica

いろんなメモ

fish shellのconfig.fish

fishを使ってみた

f:id:g-hyoga:20160923232139p:plain

良さげなのでとりあえず、(自分は)これだけあればなんとかなるconfig.fishをメモしておく

fishはここから fish shell もしくは

brew install fish

とかで

config.fishは

~/.config/fish/config.fish

にかく

ないなら作る

config.fish

## 環境変数
set -x GOPATH $HOME/dev
set -x GOROOT /usr/local/go
set -x PATH $PATH $GOROOT/bin
set -x PATH $PATH $GOPATH/bin

## vi mode
fish_vi_key_bindings

# vi modeではなんか[I]みたいなの出るからオーバーライド
function fish_mode_prompt 
end

## prompt
function fish_prompt 
    if test "$fish_key_bindings" = "fish_vi_key_bindings"
        switch $fish_bind_mode
            case default
                set_color --bold red white
            case insert
                set_color --bold green white
            case replace-one
                set_color --bold green white
            case visual
                set_color --bold magenta white
            end
        echo (prompt_pwd) ">><(( *>  "
    end
end

#gitのbranch名出す
function git_branch
    git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ [\1]/'
end

#右prompt
function fish_right_prompt
    echo (git_branch)
end



## cd後にls 
function cd 
    builtin cd $argv; and ls
end

## rmでゴミ箱に入れる
alias rm='rmtrash'

function hello
    echo 'hello'
end

留意点

環境変数

環境変数の設定がなんか他のshellと違ってて、

set -x PATH hoge

てする

vi モードでのプロンプト

左プロンプト

さすがfish、vi モードがある. Vim大好きな私には嬉しい. ちなみにデフォルトはemacs

fish_vi_key_bindings

と書くとviモードになる。 f:id:g-hyoga:20160923232844p:plain すると最初は横に[I]とか[V]とかでる。 わかりやすいけど、ダサい

せっかくなので、左プロンプトをお魚さんにして、色でinsertやらを判断するようにした

function fish_prompt 
    do something
end

ここに書けば左プロンプトを操作できる

viモードに関してはgithubのコードをみました ここのfish_vi_nantoka

prompt_pwd

というのは、fishが用意してくれている関数で、デフォルトのプロンプトでも使われている。

/hoge/foo/bar

となっているのを

/h/f/bar

としてくれる、便利

右プロンプト

function fish_right_prompt
    do something
end 

ここに書く

これ をみました。 ありがとうございます

まとめ

何をしたかというとpromptの設定がほとんどで、 fishなだけあって、何もしなくても補完やらなんやらしてくれる、強い