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

SUB.V8OS.NET

V8OS.NET のサブブログ

Ubuntuでzplugを試してみる

最近、oh-my-zshがとっても遅い。git管理をしているフォルダに移動すると、コマンド毎に1秒止まる。。。 原因はわからない。もはや大きすぎて、手のつけようがない..。 なんとなせねば、

そう思い、新しいzshプラグインマネージャを導入してみたのであった

はじめに

私のシェルでは、zshoh-my-zshを使って、使いやすい環境を自分なりに作ってきたつもりでした。 しかし、それも限界を迎えています。

発端は、gitフォルダにアクセスすると、コマンド毎に1秒程固まってしまうようになりました。 シェル環境の破綻は開発環境の破綻を意味します。

そこで、なんとかせねばという思いで、なんとか良さそうなものを探してみることにしました。

前にoh-my-zshを使ってた人へ

当たり前ですが、zplugを使う際に.zshrcを再構成する必要が有ります。 そこで、前のファイルを退避しておきましょう。

$ mv .zshrc .zshrc.oh-my-zsh.bk

zplugをしてみよう!

zplugは幾つかの依存があります。

  • curl
  • zsh
  • git
  • gawk // <= 注意: mawkでは動きません!!

事前にインストールしましょう!

# Mac OSX
$ brew install curl zsh git gawk

# Ubuntu
$ sudo apt-get install curl zsh git gawk

それでは、zplugをインストールしましょう! brewでインストールする方法もあるみたいですが、 推奨されているのがコマンドによるインストール方法なので、 これに従いましょう。

$ curl -sL zplug.sh/installer | zsh

f:id:k4zzk:20161217215522p:plain

これで、ホームフォルダ.zplugフォルダが作成されたはずです。 後は、.zplugが読み込まれるように.zshrcを編集すればOKです。

.zplugテンプレート

source ~/.zplug/init.zsh


# ここに、導入したいプラグインを記述します!


# Install plugins if there are plugins that have not been installed
if ! zplug check --verbose; then
    printf "Install? [y/N]: "
    if read -q; then
        echo; zplug install
    fi
fi

# Then, source plugins and add commands to $PATH
zplug load --verbose

例としては、こんな感じです。

source ~/.zplug/init.zsh

# Make sure to use double quotes
zplug "zsh-users/zsh-history-substring-search"

# Use the package as a command
# And accept glob patterns (e.g., brace, wildcard, ...)
zplug "Jxck/dotfiles", as:command, use:"bin/{histuniq,color}"

# Can manage everything e.g., other person's zshrc
zplug "tcnksm/docker-alias", use:zshrc

# Disable updates using the "frozen" tag
zplug "k4rthik/git-cal", as:command, frozen:1

# Grab binaries from GitHub Releases
# and rename with the "rename-to:" tag
zplug "junegunn/fzf-bin", \
    from:gh-r, \
    as:command, \
    rename-to:fzf, \
    use:"*darwin*amd64*"

# Supports oh-my-zsh plugins and the like
zplug "plugins/git",   from:oh-my-zsh

# Also prezto
zplug "modules/prompt", from:prezto

# Load if "if" tag returns true
zplug "lib/clipboard", from:oh-my-zsh, if:"[[ $OSTYPE == *darwin* ]]"

# Run a command after a plugin is installed/updated
# Provided, it requires to set the variable like the following:
# ZPLUG_SUDO_PASSWORD="********"
zplug "jhawthorn/fzy", \
    as:command, \
    rename-to:fzy, \
    hook-build:"
    {
        make
        sudo make install
    } &>/dev/null
    "

# Supports checking out a specific branch/tag/commit
zplug "b4b4r07/enhancd", at:v1
zplug "mollifier/anyframe", at:4c23cb60

# Can manage gist file just like other packages
zplug "b4b4r07/79ee61f7c140c63d2786", \
    from:gist, \
    as:command, \
    use:get_last_pane_path.sh

# Support bitbucket
zplug "b4b4r07/hello_bitbucket", \
    from:bitbucket, \
    as:command, \
    hook-build:"chmod 755 *.sh", \
    use:"*.sh"

# Group dependencies
# Load "emoji-cli" if "jq" is installed in this example
zplug "stedolan/jq", \
    from:gh-r, \
    as:command, \
    rename-to:jq
zplug "b4b4r07/emoji-cli", \
    on:"stedolan/jq"
# Note: To specify the order in which packages should be loaded, use the defer
#       tag described in the next section

# Set the priority when loading
# e.g., zsh-syntax-highlighting must be loaded
# after executing compinit command and sourcing other plugins
# (If the defer tag is given 2 or above, run after cominit command)
zplug "zsh-users/zsh-syntax-highlighting", defer:2

# Can manage local plugins
zplug "~/.zsh", from:local

# Load theme file
zplug 'dracula/zsh', as:theme

# Install plugins if there are plugins that have not been installed
if ! zplug check --verbose; then
    printf "Install? [y/N]: "
    if read -q; then
        echo; zplug install
    fi
fi

# Then, source plugins and add commands to $PATH
zplug load --verbose

更にふみこんで!

ここまでで、zplugをインストールする方法を紹介しました。 しかし、また使いこなせたとは言えません。 そこで、どのように使うのか一例を紹介したいと思います。

zplugがインストールされていないことも考えて、このようにするといいみたいです。

if [[ -f $HOME/.zplug/init.zsh ]]; then
    source ~/.zplug/init.zsh


    # ここに、導入したいプラグインを記述します!


    # Install plugins if there are plugins that have not been installed
    if ! zplug check --verbose; then
        printf "Install? [y/N]: "
        if read -q; then
            echo; zplug install
        fi
    fi

    # Then, source plugins and add commands to $PATH
    zplug load --verbose
fi

参考サイト