我找到了我想要使用的命令:cd $(ls -d */|head -n 1)
当我在终端中执行它时,它按预期工作。但是当我在 ranger 中映射它时(使用map g1 cd...
或map g1 shell cd...
),它不起作用。
难道ranger不支持嵌套命令?
编辑:
答案是有效的,为了清楚起见,我想做的是在 Ranger 中设置一个键绑定,将我 cd 到当前可见的第一个文件夹中,将我的一个键绑定到第二个文件夹中,等等。我发现我需要使用第三个文件夹,cd $(ls -d */ |head -n 3 | tail -1)
根据答案将翻译为
map g3 eval from ranger.ext.spawn import spawn; fm.cd(spawn("ls -d */|head -n 3| tail -1").strip())
答案1
虽然您没有说出您想要实现的目标,但在cd $(ls -d */|head -n 1)
游侠内您需要使用:
map g1 eval from ranger.ext.spawn import spawn; fm.cd(spawn("ls -d */|head -n 1").strip())