LoginSignup
1

More than 5 years have passed since last update.

zsh で連続したスペースにキーバインドを割り当てる

Posted at

zsh で、<SPACE> <SPACE> とスペースを2つ連続で入れた時に何かしたくなった。例えばスペース2つ入れたら git に置き換わる、とか。

bindkey ' ' XXX とかしたくなるけど、それではうまくいかない。
一応動くことは動くんだけど、普通にスペースを1つだけ入れたい時でも、一回スペースを押してからちょっと待ち時間が発生してしまう。うれしくない。

そういうときはこれを .zshrc に書いておけばOK。

double_space_keybind.zsh
function _double_space_to_git() {
    if [[ "${BUFFER}" == " " ]]; then
        LBUFFER="git "
    else
        zle self-insert
    fi
}
zle -N _double_space_to_git
bindkey ' ' _double_space_to_git

これで、スペースを2つ連続で入れると git に置き換わる。
git のところは好きなように変えて使ってください。

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
1