问题描述
我的 alias vif='vim $(fzf)
中有 ~/.zprofile
,效果很好;但是,即使我点击 esc
按钮,它也总是打开 vim 窗口,因为我没有找到我要找的文件。如果我按 vim
,如何让它不打开 esc
?
解决方法
使用 shell 函数,这将允许您检查 fzf
是否以非零状态退出。 (如果被 Esc 或 Ctrl+C 中断,它会以状态 130 退出。)
function vif() {
local fname
fname=$(fzf) || return
vim "$fname"
}
当返回码不为零时,|| return
部分会提前中断,因此 vim
只会在成功执行 fzf
后调用。