Navigation à l'aide de SSH


10

Je sais que l'on peut utiliser vim scp://host/path/to/filepour modifier des fichiers distants localement, puis mettre à jour la machine distante lors de l'enregistrement ( :w). Cependant, je voudrais savoir s'il est possible de naviguer dans les répertoires à l'aide de ssh (ou s'il existe un plugin pour le faire)

NERDTree ne le prend pas en charge, et lorsque viming dans un dossier, bien que netrw me permette de naviguer dans les répertoires, l'ouverture d'un fichier ne fonctionne pas.

Réponses:


13

Au lieu de pointer Vim / Netrw vers un fichier:

scp://host/path/file

pointer vers un répertoire:

scp://host/path/

Cela vous donne la même liste et les mêmes raccourcis que si vous naviguiez sur votre machine.


avez-vous essayé cela lors de l' Unixaccès à distance à partir de votre machine pour accéder aux dossiers sur une machine Windows .. J'ai juste essayé vim scp://user@10.1.4.4//C:/Users/user/Desktop/tmp/, et cela m'a juste donné un écran vide, avec l'erreur 'ls' is not recognized as an internal or external commandquand j'essaye: vim scp://user@10.1.4.4//C:/Users/user/Desktop/tmp/filename.. cela fonctionne très bien.
alpha_989

De cela, il semble que vimsoit émet une commande ls, quand il se connecte à l'ordinateur distant .. et parce que c'est un ordinateur Windows .. il n'y a pas ls.. et la commande échoue. Est-il possible que vim traverse des windowsrépertoires via ssh en utilisant un netrwplugin ou autre chose? J'utiliseVIM 8.1
alpha_989

2
Veuillez noter que la barre oblique de fin après scp://host//path/est nécessaire pour que cela fonctionne; sinon, vim essaiera d'ouvrir le chemin en tant que fichier normal, qui se chargera en blanc.
koyae

1

Oups, j'ai oublié que cette question était ouverte!

Le problème était donc qu'avec la version netrw que j'avais (empaquetée avec vim-gnome sur Debian Jessie), la modification d'un fichier depuis l'explorateur (via ssh) n'utiliserait pas l'URI correct (de mémoire, le '@' dans le ' utilisateur @ hôte 'manquait). Il a ouvert un fichier vide (car il n'a rien trouvé) mais il a tout de même enregistré le nouveau fichier en utilisant le bon URI (écrasant effectivement le fichier d'origine).

La réponse de @ user21497 m'a également aidé car je n'ai jamais trouvé ce raccourci «nouveau fichier», ce qui est assez pratique car l'utilisation de «: e» crée le fichier localement.

Enfin, cette question m'a aidé à mieux naviguer en utilisant netrw (revenir à l'explorateur après avoir ouvert un fichier en utilisant: Ex)

Merci pour votre aide les gars !


0

Je ne sais pas ce que vous entendez par "notifier un nouveau fichier"; si vous voulez créer un nouveau fichier, lorsque vous naviguez via scp: // hostname / directory, appuyez simplement sur "%" comme vous le feriez dans un répertoire local pour créer un nouveau fichier. Voir: help netrw-%. Vous pouvez créer un répertoire en utilisant d (: help netrw-d). Si vous souhaitez modifier un fichier déjà existant, sélectionnez-le avec votre curseur au-dessus du nom de fichier dans l'affichage netrw et appuyez sur <cr>(il existe également d'autres méthodes de sélection, y compris v, o, t, etc.). Voir: help netrw-quickmap pour un aperçu à ce sujet. Je viens d'essayer cela et je n'ai pas obtenu de fichier vide (lorsqu'il existait déjà). Un nouveau fichier, bien sûr, sera vide.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.