3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

zshでaliasを展開する

Last updated at Posted at 2017-11-14

zshalias を展開するコマンドを作った。

人に説明する際に alias だと伝わらないので Ctrl+space で展開するようにした。

$ gst

カーソルが最後にある状態で Ctrl+space を押すと以下のように展開される。

$ git status

一応、グローバルのaliasも同様に展開できるようにしてある。

G='| grep'

上記のような alias を作成している場合も G を打ったところで Ctrl+space

$ alias G

alias | grep

以下の記述を .zshrc に貼り付けるか、別のファイルで保存して .zshrc から読み込めば使えます。

my-open-alias() {
    if [ -z "$RBUFFER" ] ; then
        my-open-alias-aux
    else
        zle end-of-line
    fi
}

my-open-alias-aux() {
    str=${LBUFFER%% }
    bp=$str
    str=${str##* }
    bp=${bp%%${str}}
    targets=`alias ${str}`
    if [ $targets ]; then
        cmd=`echo $targets|cut -d"=" -f2`
        LBUFFER=$bp${cmd//\'/}
    fi
}

zle -N my-open-alias
bindkey "^ " my-open-alias

gist:https://gist.github.com/astrsk-hori/43babb832a99b350fc97981a6473e730

バインドするkeyを変えたければ最後の行を好きなバインドに変更してください。

普段shellはあまり作成しないから本当はもっと簡単な方法あるかも。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?