Die auf Symfony basierende automatische Vervollständigung unterbricht die SCP-Autocomplete

9

Ich verwende die PHP-Tools Ссылка und n98-magerun.phar - beide basieren auf Symfony's CLI-Komponenten.

Wenn ich ein solches Autocomplete-Skript verwende:

%Vor%

Er unterbricht die automatische Vervollständigung des Befehls scp (der normalerweise Dateien auf einem Remote-Server abschließt - aber mit dieser - nicht verwandten - Robo-Vervollständigung an Ort und Stelle entfernt scp den Hostnamen aus dem Befehl)

Warum ist das? Wie zu beheben?

BEARBEITEN

basierend auf der Antwort, die feste Version ist hier:

Ссылка

    
Alex 26.08.2016, 08:28
quelle

1 Antwort

3

Das hat wahrscheinlich nichts mit deinem robo compspec zu tun. Auch nicht mit der Funktion _scp completion, die mit scp verknüpft ist.

Wahrscheinlich liegt das an deinem COMP_WORDBREAKS=${COMP_WORDBREAKS//:} .

Sie haben : aus der Liste der Trennzeichen entfernt. Offenbar ist _scp robust genug, um sich mit oder ohne : als Worttrennzeichen zu verhalten. Es gibt die gleiche Liste der Kandidatenabschlüsse zurück. Aber das Token, das ersetzt wird, wenn _scp nur einen Kandidaten für die Vervollständigung von z. scp host:public_ht , ist host:public_ht , anstatt nur public_ht . Beweis:

%Vor%

Wenn Sie versuchen, foobar host:public_ht zu vervollständigen, erhalten Sie foobar host:bazcux , weil das ersetzte Token nur public_ht ist. Während mit:

%Vor%

Wenn Sie versuchen, foobar host:public_ht zu vervollständigen, erhalten Sie foobar bazcux , weil es die vollständige host:public_ht ist, die durch bazcux ersetzt wird.

Die Lösung für Ihr Problem besteht wahrscheinlich darin, Ihre Funktion _robo completion so anzupassen, dass : kein Worttrennzeichen ist. Etwas wie:

%Vor%

Eine (scheinbar) einfachere Lösung besteht darin, die obige Funktion _stem durch die vorhandene Funktion __reassemble_comp_words_by_ref der Bibliothek bash_completion zu ersetzen:

%Vor%

All das ist wahrscheinlich nicht genau das, was Sie wollen. Ich weiß nicht robo.il und es gibt wahrscheinlich viele Verbesserungen, die mehr Kontext in Betracht ziehen würden, um spezifische Vervollständigungen vorzuschlagen. Aber es kann ein Ausgangspunkt sein.

    
Renaud Pacalet 17.08.2017, 14:00
quelle

Tags und Links