Il y a beaucoup de bizarreries avec le terminal WSL, mais l'utilisation du copier/coller croisé Vim est le plus grand agacement à mon sens. Rien de ce que j'ai essayé jusqu'en avril 2018 n'a fonctionné pour coller dans Vim ou dans d'autres zones (en utilisant la sagesse normale), donc essayons de contourner le problème, et d'autres liés comme le tampon, pour l'instant. Ce n'est pas une solution directe WSL, mais plutôt une solution de contournement en utilisant un terminal de meilleure qualité + SSH jusqu'à ce que Microsoft fournisse un correctif.
Putty, ou sa version étendue Kitty, offrent un terminal plus robuste que WSL. Nous pouvons nous connecter au WSL (ou à n'importe lequel de vos autres serveurs) en utilisant SSH via localhost, en utilisant un port personnalisé, et obtenir un terminal plus complet, incluant presque toutes les capacités de Vim pour le copier/coller bidirectionnel, le scroll, etc. [Vous pourriez devoir ajuster la configuration de Vim pour déclencher toutes les capacités].
Putty/Kitty nécessitent un serveur SSH disponible dans le WSL, sur un port localhost personnalisé. Si vous n'avez pas déjà configuré un serveur SSH localhost sur votre WSL, voici un bref aperçu de la procédure :
Étape 1) Ouvrez le terminal Ubuntu WSL, faites un sudo su
pour vous authentifier en tant que root, exécutez vim /etc/ssh/sshd_config
pour ouvrir la configuration du serveur SSH.
Étape 2) Cherchez "Port" près des premières lignes. Il peut être réglé sur 22. Nous devons définir un port personnalisé pour notre SSH WSL qui ne soit pas en collision. Appuyez sur i
pour éditer. Utilisons par exemple le port 9977.
Étape 3) Si vous êtes un développeur, ou autrement n'avez pas besoin de vous embêter avec des clés pour votre SSH localhost WSL, cherchez l'authentification par mot de passe. Vous pouvez définir PasswordAuthentication yes
. Sinon, les clés et une sécurité plus élevée, ou l'accès public via des pare-feu sur le WSL, dépassent le cadre de cette réponse.
Étape 4) Lorsque vous avez fini d'éditer, appuyez sur échap pour quitter le mode édition, puis enregistrez et quittez le fichier avec :wq
. Redémarrez le service SSH en utilisant service ssh restart
. Laissez le WSL ouvert à ce stade comme une console principale.
Étape 5) Créez une nouvelle session Putty/Kitty, connectez-vous en localhost, en utilisant votre port personnalisé (9977 dans notre exemple). Connectez-vous avec vos identifiants WSL, faites un sudo su
si vous avez besoin des droits root. Vous devriez maintenant avoir un shell beaucoup plus robuste à disposition. Répétez ou utilisez screen
autant de vues que nécessaire.
Je sais que ce n'est pas une réponse directe, mais au moins c'est une solution pour l'instant :)