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//filepath
machen, 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?
autocompletion
filesystem
m.ajallooeian
quelle
quelle
Antworten:
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:
Richten Sie einen Benutzer-Level
afuse
/sshfs
Daemon in Ihren Shell-Init-Dateien einMit ein paar
.profile
Skriptzeilen, die von zB stammen , können Sie einen On-Demand-Auto-Mounter unter einem Verzeichnis einrichten, zB~/scp/
. Details zu dieser Integration in einem Beitrag zu Unix & Linux SE . Dies ist die bequemste Option, Remote - Dateien „erscheinen“ lokal, sondern erfordertafuse
undsshfs
Ihnen zur Verfügung zu stehen.Vervollständigung der Shell-Befehlszeile für Remote-Dateipfade
Die Fertigstellung Funktionspaket für bash hat einige Funktionen für die ausgelegt
ssh
undscp
Fertigstellung. Mit einer Wrapper-Funktionvim()
können Remotepfade invim
die erwartete Form gebracht und TAB-vervollständigte Remotedateien an bereitgestellt werdenvim
. Dort werden auch die geringfügigen Mängel dieses Ansatzes erläutert. Für Situationen ohne Entschlossenheit. Mussbash-completion
installiert werden oder gleichwertig und Anpassungen für andere Shells.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):
$HOME
:,vim scp://files/
oder/
:vim scp://files///
/
oder$HOME
) geöffnet .So bearbeiten Sie Remote
/etc/network/interfaces
mit 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
:autocmd filetype netrw noremap <buffer> <TAB> /
let g:netrw_liststyle=3
<C-E>
, wenn Sie möchten (ich verwende ihn).incsearch
auchignorecase
undsmartcase
für NetRW oder alle Puffer.Im Vergleich zur "herkömmlichen" Tab-Vervollständigung ist das oben Gesagte anders und dennoch sehr komfortabel.
Hinweis: Alle oben
~/.ssh/config
genannten 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
quelle