Modo tramp do Emacs - nome do arquivo auto complete não funciona

1

Estou usando o modo tramp no Emacs para editar arquivos por ssh. Mas o problema é que no shell remoto eu fiz aliases ls como "ls --color". Tramp usa ls para preenchimento automático e não é possível analisar a saída ls codificada por cores.

A solução mencionada no link é para desativar a coloração da saída de ls removendo a alias. Eu não quero fazer isso, pois é uma característica importante para mim.

Existe uma maneira de redefinir como o comando lx issues ls para que eu possa manter minha configuração do shell e ainda usar o término do nome do arquivo com o tramp.

Editar 1 : parece que o problema é outra coisa. Eu tentei alterar o alias para 'ls --color = auto' como sugerido por @chepner e depois para simplesmente 'ls'. Ainda não funciona. Como posso resolver ainda mais o problema?

    
por Xolve 12.03.2013 / 09:42

4 respostas

0

Tramp envia o seguinte snippet Perl para receber as conclusões do arquivo

\perl5 -e 'sub case {
 my $str = shift;
 if ($ARGV[2]) {
  return lc($str);
 }
 else {
  return $str;
 }
}
opendir(d, $ARGV[0]) || die("$ARGV[0]: $!\nfail\n");
@files = readdir(d); closedir(d);
foreach $f (@files) {
 if (case(substr($f, 0, length($ARGV[1]))) eq case($ARGV[1])) {
  if (-d "$ARGV[0]/$f") {
   print "$f/\n";
  }
  else {
   print "$f\n";
  }
 }
}
print "ok\n"
' /home/ '' 0

perl5 foi quebrado no host remoto devido à biblioteca ausente. A solução foi corrigir manualmente o perl5 quebrado. Tudo isso graças a Michael Albinus .

    
por 24.05.2013 / 08:15
2

Redefina seu alias para ler

alias ls="ls --color=auto"

Dessa forma, ls apenas colore sua saída quando perceber que está gravando no terminal. Não estou familiarizado com tramp , mas isso deve ser suficiente.

    
por 12.03.2013 / 19:47
0

A outra coisa que eu faria, seria olhar no meu ambiente se houvesse algo que indicasse que você está no "modo de vagabundo"

Diga, faça:

printenv | sort > ~/notramp.txt

depois no emacs / tramp-mode:

printenv | sort > ~/withtramp.txt

Diferencie os dois arquivos env e veja o que é diferente.

Então, no seu ~ / .bashrc, você pode colocar

if [ -z "$TRAMPFLAG" ]
then
    alias ls='ls --color=auto'
fi
    
por 12.03.2013 / 20:53
0

O Tramp usa técnicas sofisticadas para ser portátil em vários sistemas, mas não é infalível. Freqüentemente, para fornecer coisas como a conclusão do nome do arquivo remoto, o tramp na verdade executará modestos scripts perl no host remoto. Portanto, verifique se você tem o perl 5 instalado, configurado e disponível no host remoto.

    
por 25.05.2013 / 07:33