我一直在尝试将ranger-cd
用于游侠文件管理器的函数移植到鱼壳,如下所示:
function ranger-cd {
tempfile='/tmp/chosendir'
/usr/bin/ranger --choosedir="$tempfile" "${@:-$(pwd)}"
test -f "$tempfile" &&
if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then
cd -- "$(cat "$tempfile")"
fi
rm -f -- "$tempfile"
}
# This binds Ctrl-O to ranger-cd:
bind '"\C-o":"ranger-cd\C-m"'
(这个函数给 ranger 文件管理器一个临时文件来存储最后访问的目录,以便我们可以在 ranger 退出后切换到该目录。)
这是我到目前为止所做的:
function ranger-cd
set tempfile '/tmp/chosendir'
/usr/bin/ranger --choosedir=$tempfile (pwd)
test -f $tempfile and
if cat $tempfile != echo -n (pwd)
cd (cat $tempfile)
end
rm -f $tempfile
end
function fish_user_key_bindings
bind \co ranger-cd
end
当我使用此功能时,我得到:
test: unexpected argument at index 2: 'and'
1 /home/gokcecat: !=: No such file or directory
cat: echo: No such file or directory
cat: /home/gokce: Is a directory
我猜上面的代码中仍然存在多个错误。有没有人有一个可行的解决方案?