Views
Edit detail for Abrir con VIM sobre SSH revision 1 of 1
| 1 | ||
|
Editor: xil
Time: 2007/05/17 22:15:33 GMT+0 |
||
| Note: | ||
changed: - Con Nautilus (Gnome), pódese acceder a sistemas de ficheiros remotos sobre SSH. Pódense invocar moitas aplicacións para editar ficheiros, pero o VIM non é unha delas (non entende as URIs de Gnome VFS). Grantm publicou un script en http://www.perlmonks.org/?node_id=602454 que soluciona este problema :: #!/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; } Este script cópiase en "~/.gnome2/nautilus-scripts/Open with gvim" e dánselle permisos de execución.
Con Nautilus (Gnome), pódese acceder a sistemas de ficheiros remotos sobre SSH. Pódense invocar moitas aplicacións para editar ficheiros, pero o VIM non é unha delas (non entende as URIs? de Gnome VFS). Grantm publicou un script en http://www.perlmonks.org/?node_id=602454 que soluciona este problema
#!/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;
}
Este script cópiase en "~/.gnome2/nautilus-scripts/Open with gvim" e dánselle permisos de execución.