shell을 fish로 바꿨다.

3821 단어 fishPeco

소개



이 문서는 Sansan 어드벤트 캘린더 5 일째입니다.

오늘의 이야기



shell 은, 어느 정도 10 년 정도 zsh 를 사용하고 있습니다만, 올해의 여름 정도fish로 해 보았습니다.
3개월 정도로 결국 zsh로 돌아갔습니다만(이유는 후술), 이번은 비망록을 겸해 해 본 것을 정리해 보려고 합니다.

oh-my-fish



갑자기입니다만 oh-my-fish 라고 하는 것이 있으므로 넣어 보겠습니다.

이 글을 넣으면 omf라는 명령을 사용할 수 있으며 플러그인을 관리 할 수 ​​있습니다.
omf install XXX에서 플러그인을 설치할 수 있습니다. 테마는 omf theme YYY .
또한 omf list로 설치한 플러그인을 확인할 수 있습니다.

나는 다음 플러그인을 설치하려고했습니다.
⋊> ~ omf list
Plugins
brew                omf
bundler             osx
fish-peco_select_ghq_repository pbcopy
fish-peco_select_zsh_history    peco
fish-spec           rbenv
gem

Themes
default yimmy

fish_config



그리고 흥미로운 것은 아래의 명령으로 브라우저가 일어나 거기에서 설정이라고 할 수 있다는 것입니다.
⋊> ~ fish_config

이런 화면에서 설정할 수 있습니다.



Theme 의 변경이나 설정하고 있는 function 의 확인등 여러가지 할 수 있습니다.

구부러진 포인트



bash나 zsh와 달리, 예를 들면 다음과 같이 환경 변수를 주어 명령을 실행하는 경우는 env가 필요합니다.
⋊> ~ env RAILS_ENV=test bin/rake db:create

설정



여기까지 설정하면 그 밖에는 특별히 아무것도 하지 않아도 충분히 사용할 수 있었습니다만, CTRL-j 를 누르었을 때에 ls 와 git status 를 표시하고 싶었으므로, 그것은 이전 이 기사에 정리하고 있다 합니다.

또한 bundle showpeco 에 먹여 bundle open 할 수 있게 하고 싶었으므로, 이하의 function 를 정의했습니다.

functions/peco_bundle_open.fish
function peco_bundle_open
  set -l query (commandline)

  if test -n $query
    set peco_flags --query "$query"
  end

  bundle show 2> /dev/null | sed -e '/^  \*/!d; s/^  \* \([^ ]*\) .*/\1/' | peco $peco_flags | read line

  if test -n $line
    echo $line
    commandline "bundle open $line"
  end
end

config.fish 는 이런 느낌이 들었습니다.

config.fish
# Path to Oh My Fish install.
set -q XDG_DATA_HOME
  and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
  or set -gx OMF_PATH "$HOME/.local/share/omf"

# Customize Oh My Fish configuration path.
set -gx OMF_CONFIG "$HOME/.config/omf"

# Load oh-my-fish configuration.
source $OMF_PATH/init.fish

set -Ux GOPATH $HOME/workspace/go

set -U fish_user_paths $fish_user_paths $GOPATH/bin

set -Ux LC_ALL ja_JP.UTF-8

set -Ux EDITOR 'emacsclient -n'

alias mv 'mv -i'
alias cp 'cp -i'
alias rm 'rm -i'

alias g git

eval (hub alias -s)

function fish_user_key_bindings
  bind \c] peco_select_ghq_repository
  bind \ct peco_select_zsh_history
  bind \cr peco_select_history
  bind \cj do_enter
  bind \co peco_bundle_open
end

사용해보십시오.



3개월 정도 사용해 보았습니다만, zsh라고SAVEHIST로 이력의 건수를 지정할 수 있었습니다만, fish로 어떻게 할까 잘 모르게 zsh에 돌아 버렸습니다

느낌으로 결국 사용하지 않게 되어 버렸습니다만, fish 는 특별히 설정하지 않아도 보완 기능 등 강력한 기능이 있어, 환승은 상당히 순조롭게 할 수 있지 않을까 생각했습니다

좋은 웹페이지 즐겨찾기