有没有办法通过按 escape 来取消 fzf

Is there a way to cancel fzf by pressing escape

我的 ~/.zprofile 中有 alias vif='vim $(fzf),效果很好;但是,它总是打开 vim window 即使我点击 esc 按钮,因为我没有找到我要找的文件。如果我按 esc,如何让它不打开 vim

使用 shell 函数,这将允许您检查 fzf 是否以非零状态退出。 (如果使用 Esc 或 Ctrl+C 中断,它会以状态 130 退出。)

function vif() {
    local fname
    fname=$(fzf) || return
    vim "$fname"
}

function fcd() {
    local dirname
    dirname=$(find -type d | fzf) || return
    cd "$dirname"
}

当return代码为非零时,|| return部分会提前爆发,所以vim只会在fzf执行成功后被调用。