如何从菜单项或按键绑定中调用内部午夜指挥官命令

时间:2018-12-13 06:47:16

标签: configuration customization mc

我尝试为我的mc设置自动化一些操作,并希望从菜单项或按键绑定中调用内部Midnight Commander命令。

例如,我在.ssh / config中定义了很多ssh站点,

# ssh (secure shell) configuration file
Host test1
    HostName 123.456.789.0
    Port 980
    User MyUserName

Host test2
    HostName test.mynet.local
    User test
    CheckHostIP no
    ..
  1. 我想从.ssh / config中过滤别名并对其排序(例如):

    grep'^ Host'.ssh / config |切-d''-f 2 |排序

  2. 将结果列表存储在mc内部列表框或选择面板中。

  3. 选择其中一项,然后为右侧文件面板调用远程外壳程序(例如mc sh://%s ...)。

至少我想将过程存储到按键绑定或mc菜单项中。

这可以通过mc板工具或配置文件完成吗?

1 个答案:

答案 0 :(得分:1)

您要尝试的操作是不可能的,因为mc不是可编写脚本的文件管理器。它甚至没有键盘宏。

但是我能想到一些较弱的选择。

  1. 使用称为 F2 的菜单(有关格式,请参见the manpage,“菜单文件编辑”部分)。在菜单中运行您的grep命令,将主机列表传递给dialog之类的程序以选择主机并运行mc sh://$host。该方法存在的问题:您需要学习dialogmc的第二个副本将检测第一个副本的存在,并询问您是否真的要运行第二个副本。哎呀!

  2. 或者编写一个脚本,该脚本将运行grep命令,获取主机列表并以编程方式编辑~/.cache/mc/history。该文件是类似ini的文件。您需要编辑[inp:fishlink_cmd: Shell link to machine ]部分。键只是连续的数字,值是主机名。示例:


[inp:fishlink_cmd: Shell link to machine ]
0=Host1
1=Host2

现在按 F9 R [ight], h (对于S h ell命令)—打开的对话框将显示主机列表。按 Alt-p / Alt-n 作为上一个/下一个主机,或使用鼠标打开列表。