我可以将文件从一个vifm实例复制到另一个实例吗?

时间:2016-02-04 14:04:01

标签: vifm

我有多个vifm的已启动实例。是否可以将文件从一个实例复制到另一个实例(使用yy)?

谢谢!

2 个答案:

答案 0 :(得分:0)

不,你不能轻易做到这一点。实例不共享它们的运行时状态(在这种情况下是寄存器的内容),所以当你在其中一个中 yy 文件时,其他实例都不知道它。

作为您真正想要的案例的解决方法:

  1. (在dst实例中)运行:write将当前状态保存到vifminfo文件中。
  2. (在src实例中)执行 yy 然后:write合并两个实例的状态。
  3. (在dst实例中)运行:restart重新加载状态(这可以带来的不仅仅是寄存器)并执行 p
  4. 这不是我推荐的东西,但它应该有用,在某些情况下可能是可以接受的。

答案 1 :(得分:0)

定义地图以保存当前文件:

nmap Wf :!ls -1 %f | while read f ; do printf ":!cp %%s/%%s %%s\n" %d $f '%%d' ; done > ~/.vifm_tmp <cr> 

第二个映射将获取临时文件:

nmap Pf :source ~/.vifm_tmp<cr>

要复制文件:在第一个vifm实例中为Wf,然后在第二个实例中为Pf。这适用于多个选定的(带标签的)文件,但不适用于可视模式。

您还可以同步源目录:

nmap Yd :!printf ":cd %%s\n" %d > ~/.vifm_tmp<cr> 
nmap Pd :source ~/.vifm_tmp <cr>                  

然后在同一实例的面板之间复制/粘贴。