Могу ли я скопировать файл из одного экземпляра VIFM в другой?

У меня есть несколько запущенных экземпляров vifm, Можно ли скопировать файл из одного экземпляра в другой (используя yy)?

Спасибо!

1 ответ

Решение

Нет, ты не можешь сделать это легко. Экземпляры не разделяют свое состояние времени выполнения (в данном случае содержимое регистров), поэтому, когда вы делаете файл в одном из них, другие экземпляры не знают об этом.

В качестве обходного пути для случаев, когда вы действительно хотите это:

  1. (в экземпляре dst) Run :write сохранить текущее состояние в vifminfo файл.
  2. (в случае src) Сделайте yy, а затем :write, который объединит состояния двух экземпляров.
  3. (в экземпляре dst) Run :restart перезагрузить состояние (это может принести больше, чем просто регистры) и сделать p.

Это не то, что я бы порекомендовал, но это должно работать и может быть приемлемым в некоторых случаях.

Define a map to save current file:

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

And a second mapping that will source the temporary file:

nmap Pf :source ~/.vifm_tmp<cr>

To copy the file: Wf in the first vifm instance then Pf in the second instance. This works with multiple selected (tagged) files but does not work in visual mode.

You can also sync the source directory:

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

then copy/paste between the panels of the same instance.

Другие вопросы по тегам