我尝试为我的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
..
我想从.ssh / config中过滤别名并对其排序(例如):
grep'^ Host'.ssh / config |切-d''-f 2 |排序
将结果列表存储在mc内部列表框或选择面板中。
选择其中一项,然后为右侧文件面板调用远程外壳程序(例如mc sh://%s ...)。
至少我想将过程存储到按键绑定或mc菜单项中。
这可以通过mc板工具或配置文件完成吗?
答案 0 :(得分:1)
您要尝试的操作是不可能的,因为mc
不是可编写脚本的文件管理器。它甚至没有键盘宏。
但是我能想到一些较弱的选择。
使用称为 F2 的菜单(有关格式,请参见the manpage,“菜单文件编辑”部分)。在菜单中运行您的grep
命令,将主机列表传递给dialog
之类的程序以选择主机并运行mc sh://$host
。该方法存在的问题:您需要学习dialog
; mc
的第二个副本将检测第一个副本的存在,并询问您是否真的要运行第二个副本。哎呀!
或者编写一个脚本,该脚本将运行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 作为上一个/下一个主机,或使用鼠标打开列表。