Comment puis-je copier et coller du texte d'un vim distant vers un vim local?

12

J'édite un fichier dans vim sur une machine distante via ssh et je veux copier le texte du fichier distant et le coller dans une instance de vim exécutée sur ma machine locale. Y a-t-il un moyen facile de faire ceci? Je peux utiliser les fonctionnalités de sélection de mon émulateur de terminal pour sélectionner le texte qui est actuellement à l'écran, mais si ma sélection est plus grande que ce qui peut tenir à l'écran, je n'ai pas de chance.

davidscolgan
la source
Vérifiez si cette réponse vous aide.
Skippy le Grand Gourou

Réponses:

23

Ouvrez le fichier distant dans la session vim locale:

  :e scp://user@host/relative/path/from/home.txt
nperson325681
la source
J'aime. Agréable et simple.
Chev
Bon conseil! Cela peut-il scp://être reconnu ailleurs ou il s'agit uniquement de VIM?
Frozen Flame
1
@FrozenFlame: Je pense que c'est spécifique à l'application. MAIS je ne serais pas surpris si un grand DE comme KDE ou Gnome exigeait la prise en charge de ce schéma dans chaque application.
nperson325681
1
Pour les chemins absolus::e scp://user@host//tmp/file.txt
Simon A. Eugster
9

Si vous disposez des autorisations suffisantes sur la machine distante, vous pouvez ajouter

AcceptEnv WINDOWID

dans / etc / ssh / sshd_config et redémarrez sshd avec

sudo /etc/init.d/ssh restart

Ensuite, sur votre machine locale, ajoutez

ForwardX11 yes
SendEnv WINDOWID

dans votre fichier ~ / .ssh / config

Ensuite, en exécutant un vim compatible X sur la machine distante (par exemple, gvim -v), vous pouvez copier et coller vers et depuis le presse-papiers X. Sélectionnez simplement visuellement le texte (par exemple, en utilisant V) et tirez-le dans le *registre.

Éditer

J'ai oublié d'inclure la partie sur la configuration SendEnv WINDOWIDdans votre ~ / .ssh / config, j'ai donc ajouté cela et déplacé l'activation du transfert X de la ligne de commande ( -Xoption ssh ) vers le fichier ~ / .ssh / config ( ForwardX11 yes).

garyjohn
la source
J'avais besoin d'installer le paquet xauth pour que cela fonctionne sur Debian.
leo
avec cela, je peux copier localement et coller à distance. Y a-t-il un moyen de faire aussi l'inverse? Merci!
Paschalis