Skip to main content
  1. Posts/

めんどくさい設定をなるべくしないでいい感じなZshの使い方(zsh+Prezto+fzf)

·196 words·1 min
Table of Contents

どもども。saikiです。

私、長らくfishを愛用していたんですが、bash・zshと構文が違いすぎて困ること(人がはったコマンドを実行できないとかその程度ですが)があったのでzshを使うことにしました。

ただzshって調べるとゴリゴリにカスタマイズしている人が多くてめんどくさい感じがすごいんですよね。

で、いろいろ調べたらサクッといい感じに使えそうなPreztoなるものがあり、これ入れてちょっとだけいじったらfishの素敵な機能はそのままに移行できたのでメモっときます。

あとついでにfzfも入れます。なかなかに便利。(追記:意外と長くなったのでfzfは次回に回しました、ごめんなさい)

 

zshを入れる
#

 

まずはzshを入れましょう。

macだと元から入ってますが最新のを使った方がいいのでbrewで入れます。

brew install zsh

簡単

zshをデフォルトに設定
#

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

which zsh//場所確認
///usr/local/bin/zsh
 
//shellのリストに追記.他のshellの末尾に先ほどのパスを入れれば良いです。
sudo vim /etc/shells
 
//起動確認(初回起動でなんか聞かれるので答えると多分なんか設定してくれる。私はとりあえず無視しました)
zsh
 
//エラーが出なければデフォルトに設定
chsh -s /usr/local/bin/zsh

 

preztoを入れる
#

preztoを入れます。
これを入れるといい感じの設定といくつかのテーマがついてきます。

//zshを開いた状態で(って公式に書いてある)
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

//設定ファイルをセットアップ。
//(すでに設定ファイルがあるとエラーが出るのであるなら事前に消すか動かすかする。
//公式には${ZDOTDIR:-$HOME}/.zprezto/init.zshの最後になんか追記すると引き継げるよって書いてあるのでやってもいいかも)
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

これで.zshrcとかが作られますがシンボリックリンクでzpreztoフォルダの中のファイルにリンクされているようなのでgit管理とかする際は気をつけた方がいいです。

基本は特に意識する必要はなさそうです。

 

お好みでちょっとだけ設定(fishと同じ機能を有効に)
#

この時点でとりあえずいい感じにはなりますがfishの機能を忘れられないので追加します。

//preztoの設定ファイルを編集
vim .zpreztorc
```
# Set the Prezto modules to load (browse modules).
# The order matters.
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'prompt'

の所に以下のモジュールを追加する。

  'history-substring-search' \
  'autosuggestions' \

こんな感じになる

# Set the Prezto modules to load (browse modules).
# The order matters.
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'history-substring-search' \
  'autosuggestions' \
  'prompt'



```

 

これでfishの「途中までうつとその続きをぼんやり表示してくれてctrl-fで確定できる」「途中までうって上下キーでうたれた文字を含む履歴をたどる」機能が使えるようになります。

この二つにはお世話になっていたので助かります。最高。

 

お好みでtheme設定
#

お好みで見た目を変えましょう。

以下で入っているテーマを確認できるので好きなものを探します。デフォルトはsorinっぽいです。

http://mikebuss.com/2014/04/07/customizing-prezto/

決めたら設定ファイルを変えます。

vim .zpreztorc

```
# Set the prompt theme to load.
# Setting it to 'random' loads a random theme.
# Auto set to 'off' on dumb terminals.
zstyle ':prezto:module:prompt' theme 'sorin'

'sorin'を好きなtheme名に
```

ちなみに私はpureに設定しています。

 

=====================================================

以上でとりあえず終わりです。最低限fishと同じ感じに使えるようになりました。

思ったより長くなったのでfzfは次回に回します。

ちなみにzshにもvi操作があるんですが(.zpreztorcで設定可能。デフォはemacsです)それをオンにするとfzfのショートカットがうまく動かないので一旦置いときます。

解決次第方法載せますね。

 

ありがとうございました、ではまた。

Related

bashからfish(friendly interactive shell)へ移行する
·159 words·1 min
bashからzshに変えると見せかけてbashからfishに変える(fishの良さ・悪さ)
·97 words·1 min
The tour of go をやって大事だと思ったとこだけメモ
·559 words·3 mins