配置中的游侠链命令

配置中的游侠链命令

我使用 ranger 作为我的终端文件管理器,现在我了解了基础知识,我想更深入地自定义 rc 以达到我的目的。我喜欢做的一件事是将命令映射到键绑定,将模板复制到当前文件夹中,然后在文件上启动rename_append命令(通常使用 keybind 调用)。a

这是一个例子:

map NS shell cp ~/.templates/bash.sh . ; rename_append

问题是,无论我如何调用该命令,它都会将模板复制到当前目录中,但不会启动重命名过程。当我退出 Ranger 时,错误消息显示rename_append未找到该文件,但在 Ranger-config 中,使用相同的命令在附录之前重命名文件。我的理论是,由于我使用的是 shell,该命令会尝试rename_append在我的程序中查找。我不知道如何在我的 Ranger 配置中链接命令,其中一个是 shell 命令,而下一个不是。

目前,我必须在第一个键绑定之后使用第二个键绑定,并且我只想使用一个键绑定并在复制文件后自动进入重命名模式。

我希望,我的问题是可以理解的。

答案1

您需要该chain命令来执行多个命令。

chain <command1>; <command2>; ...

这部分可能不再相关,但对于复制和重命名任务,我想出了这个解决方案:

map NS chain shell cp ~/.templates/bash.sh .; console shell mv bash.sh%space

可以通过按 NS,键入新文件名,然后按 Enter 键来使用此绑定。
该解决方案不使用,rename_append因为它在当前选择上执行命令,并且我无法更改选择。

答案2

我一直在遇到同样的问题(没有 shell 组件):我尝试映射D来执行什么操作.d.!,即隐藏目录。

在默认配置中

  • .d映射到filter_stack type d
  • .!映射到filter_stack not

D所以我尝试通过这样的映射来链接两者:

map DD filter_stack add type d ; filter_stack add not

'type'当我尝试这个时,我在控制台输出中看到红色。

在这两种情况下,似乎都;没有正确解释,但是在您的 shell 情况下, the 的含义存在歧义;(是 shell 命令的结束还是 Ranger 映射命令的结束?),在我的情况下应该没有含糊不清。

尽管如此,似乎后面添加的任何内容type d都会被解释为类型的延续d,并且会生成错误,我猜是因为生成了错误的类型(“ d”和“ d;”都不是有效类型)。

相关内容