Dateinamenergänzung für entfernte Dateien

16

Mein Freund hat mir vor einigen Tagen einen coolen Trick auf Emacs gezeigt, bei dem er einfach eine Datei auf einem Remote-Server öffnen konnte, und ich dachte sofort, "es sollte einen Weg geben, das auch in vim zu tun", und das stimmte.

Das kann ich einfach :e scp://user@server//filepathmachen, kein Problem;). Er konnte jedoch nur den Servernamen eingeben und dann die Vervollständigung für Dateipfade und Namen (mit Tabulator) erhalten, was ich nicht konnte. Weiß jemand, ob dies in vim gemacht werden kann?

m.ajallooeian
quelle
1
Ich hätte gedacht, dass ctrlp es unterstützen könnte ... aber anscheinend ist es eine Feature-Anfrage .
Muru

Antworten:

6

Ja , aber derzeit (2015) nicht sofort einsatzbereit, da der integrierte Dateimanager von vim Remote-Browsing nicht von Haus aus unterstützt. .

Update Q3 @ 2016:

Es gibt verschiedene Workarounds mit unterschiedlichem Komfort / Kompatibilität / Aufwand. Alles in allem ergeben sie eine schöne Lösung, können aber auch einzeln verwendet werden:

Wenn Sie nicht Ihre Umgebung oder ändern können .vimrc-nur: In dem vim - Datei-Manager verwenden können Sie die // ?Tasten zur Suche vorwärts / rückwärts, und man konnte Karte TABzu einem von ihnen. Dies ist leistungsstärker als es sich für eine schnelle Navigation durch das Dateisystem anhört. Beschreibung unten.

Grundlegende Problemumgehung (für Standard-VIM mit NetRW):

  • Zeigen Sie nicht auf eine entfernte Datei
  • Zeigen Sie auf ein Verzeichnis "ganz oben", zB $HOME:, vim scp://files/oder /:vim scp://files///
  • Das NetRW-Plugin wird im gewünschten Ordner der obersten Ebene ( /oder $HOME) geöffnet .
  • In NetRW können Sie mit überraschend wenigen Tastenanschlägen navigieren:
  • So bearbeiten Sie Remote /etc/network/interfacesmit NetRW /:

    /etENTERENTER/netwENTERENTER/intENTERt

Sie können jederzeit ?wieder nach oben suchen, ohne von oben nach oben zu springen.

Sogar noch besser , um die TAB Vervollständigung fast zu imitieren, fügen Sie hinzu .vimrc:

Im Vergleich zur "herkömmlichen" Tab-Vervollständigung ist das oben Gesagte anders und dennoch sehr komfortabel.

Hinweis: Alle oben ~/.ssh/configgenannten Punkte setzen voraus, dass ssh-zertifikatbasierte passwortlose Verbindungen mit User, Port, Compression, JumpHost (ProxyCommand sind so eingerichtet, dass nur Hostname / Aliase benötigt werden.

Dies wurde auch schon früher hier und hier vor Ort besprochen

Alex Stragies
quelle
1
Können Sie den Trick erweitern, indem Sie den Link zusammenfassen? Ein einfacher Link ist nicht sehr nützlich, wenn die Site ausfällt oder abstürzt.
muru
Ich denke, dies ist mehr oder weniger meine endgültige "Lösung", bis NetRW dies nativ tun kann. Ich werde mich weiterhin um bekannte Probleme kümmern, erwarte jedoch subtilere Bugs, Fixes und Verbesserungen (oder werde darauf hingewiesen). Sie werden angesprochen / aufgenommen. Vielen Dank für Ihren Kommentar.
Alex Stragies