#!/usr/bin/perl use strict; use warnings; my @files; foreach (split /\n/, $ENV{NAUTILUS_SCRIPT_SELECTED_URIS}) { if(s{^file://(/.*)$}{$1}) { push @files, unescape($_); } elsif(s{^ssh://([^/]+)/(.*)$}{scp://$1//$2}) { push @files, unescape($_); } else { system(qq{gdialog --infobox "Unknown URI type: '$_'"}); exit; } } my $msg = "Files:\n" . join("\n", @files); #system(qq{gdialog --infobox "$msg"}); system('gvim', @files); exit; sub unescape { my($data) = $_; $data =~ s/%([\da-f][\da-f])/chr(hex($1))/eg; return $data; }