トップ «前の日記(2012-02-17) 最新 次の日記(2012-03-02)» 編集

活動日誌


2012-03-01

[zsh] ^ で上のディレクトリに移動するのは、入力がないときだけにする

zsh を使っている方には、次のような設定を入れている方も多いと思います。

function cdup() {
  echo
  cd ..
  zle reset-prompt
}
zle -N cdup
bindkey '\^' cdup

これは ^ で上のディレクトリに移動できるようにする設定です。

普通に ^ を入力したいときは C-v ^ と入力するのですが、 テキストをコピペでターミナルに貼り付けたとき、テキストに ^ が混ざっていて意図しない結果になることが何度かありました。

この問題を改善するため、次のように変更しました。

function cdup-or-insert-circumflex() {
  if [[ -z "$BUFFER" ]]; then
    echo
    cd ..
    zle reset-prompt
  else
    zle self-insert '^'
  fi
}
zle -N cdup-or-insert-circumflex
bindkey '\^' cdup-or-insert-circumflex

これで、入力がないときは上のディレクトリに移動し、それ以外の場合は ^ が入力されるようになります。


2005|02|03|04|05|06|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|10|
2008|04|10|
2009|10|
2010|05|08|
2012|01|02|03|
2014|01|
トップ «前の日記(2012-02-17) 最新 次の日記(2012-03-02)»