作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试为 ranger file manager 移植 ranger-cd
函数到fish shell .截至 2013 年,ranger 的 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退出后切换到那个目录。)
到目前为止,我为将函数移植到 fish 所做的工作如下:
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
我猜上面的代码中仍然存在多个错误。有人对此有有效的解决方案吗?
最佳答案
我的回答是基于 gzfrancisco 的。但是,我修复了“'-a' at index 2”问题,并且我还确保在退出 ranger 后打印新的提示。
我在~/.config/fish/config.fish
中加入了以下内容:
function ranger-cd
set tempfile '/tmp/chosendir'
ranger --choosedir=$tempfile (pwd)
if test -f $tempfile
if [ (cat $tempfile) != (pwd) ]
cd (cat $tempfile)
end
end
rm -f $tempfile
end
function fish_user_key_bindings
bind \co 'ranger-cd ; commandline -f repaint'
end
关于fish - 如何将 `ranger-cd` 函数移植到 fish shell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18807813/
我是一名优秀的程序员,十分优秀!