Zshのlsキーバインディングなどのフィッシュ

Zshのlsキーバインディングなどのフィッシュ

Fishシェルでは、を押すとAlt+lコマンドの出力が見栄えよく表示されますls。押す前に作成したコマンドは保持されます。 zshに入れたいです。

私の非常に奇妙な試みは次のとおりです。

function myls {
    awk '{len = length($0); for(i=0;i<len;i++) printf "\b"}' <<< "$LBUFFER"
    zle push-input
    zle accept-line
    print $(ls --color=always --indicator-style=slash)
}
zle -N myls
bindkey -- '^[l' myls

私は既存のコマンドを消去するのが難しく、最終的にhacky\bを使用するようになりました。長く、複数行では正しく動作しません。

誰でも良いことができますか?

ベストアンサー1

zle -Rpush-inputバッファなしで行を再表示するには、後で使用してください。

ほとんどの場合、zshの完成リストはlsを実行するためにウィジェットを必要としません。 lsスタイルの色とファイルタイプのサフィックスがあります。すべてのコンテキストでファイル補完を実行し、長いls -lスタイルリストを実行する次のバインディングがあります。

zstyle ":completion:file-complete::::" completer _files
zle -C file-complete complete-word _generic
zstyle ':completion:file-complete:*' file-list true
bindkey '^X^F' file-complete

おすすめ記事