web-dev-qa-db-fra.com

Le collage de texte dans les éditeurs de terminaux se colle toujours sur une seule ligne sous Ubuntu pour Windows (10)

J'essaie de coller du presse-papiers du système Windows dans un éditeur de texte tel que vim (ou son presse-papiers et xterm-clipboard permettant des variantes telles que vim-gtx), nano ou emacs, mais en vain.

Je l’essaye principalement avec vim-gtx car vim est mon éditeur préféré -> mais quelle que soit la méthode que j’essaie, qu’il soit:

  • Utilisation de: définir coller et coller avec Ctrl-v, Shift-ctrl-v (c'est la seule méthode qui colle tout le contenu du presse-papiers)
  • Coller avec "* p ou" + p (ne pas coller)
  • Copier une entrée dans clip.exe (j'ai essayé xclip mais cet utilitaire ne semble pas fonctionner avec WSL), puis coller dans vim.

Comme mentionné ci-dessus, le collage à partir du presse-papiers ne semble fonctionner que si vous appuyez sur Ctrl-v en mode insertion (Maj-Ctrl-v insère un '^', et "* p et" + p insère un caractère "i" ou "^? '), et la sortie collée est toujours collée sur une seule ligne.

Par exemple, une section du fichier .bashrc par défaut copié à partir de VSCode:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  Elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Collera comme suit dans un éditeur de texte terminal:

# enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then   if [ -f /usr/share/bash-completion/bash_completion ]; then     . /usr/share/bash-completion/bash_completion   Elif [ -f /etc/bash_completion ]; then     . /etc/bash_completion   fi fi

Si les caractères EOL sont visibles, un $ apparaît juste après le dernier caractère. Ce problème se produit quel que soit l'éditeur utilisé, d'où le texte est copié et quel que soit le système de collage utilisé (si le collage réussit du tout).

Pour résumer:

  • Ctrl-v dans vim est le seul moyen de coller quoi que ce soit, mais le collage se produit sur une seule ligne

  • "* p /" + p dans vim ne se colle pas comme prévu (mais fonctionne dans vim via git-for-windows, voir la remarque ci-dessous)

  • Je ne suis pas sûr de savoir comment coller du presse-papiers du système dans nano et emacs (le collage ordinaire et la sortie de la tuyauterie vers le clip Windows, puis le collage ne colle rien dans ces deux programmes - je ne peux que coller après avoir extrait/copié en interne).
  • Donc, cela pourrait être un problème (avec toutes) de variétés de vim sur Ubuntu pour Windows.

Merci

Remarque importante: Lorsque vous collez avec "* p sur vim via git-for-windows (au lieu de Ubuntu bash), il est correctement collé (avec de nouvelles lignes). Mais Vim (vim-gtx ou version ppa) via Ubuntu est incapable de coller correctement avec "* p - cela risque de poser un problème de portage de vim

5
Samuel G

Si vous essayez de coller plusieurs lignes du presse-papiers dans Vim, j’ai trouvé une solution efficace dans cet article.

https://stackoverflow.com/posts/49933556/edit

Je pense que cette question mérite une réponse plus objective.

Entrée en mode Coller

  • ESC
  • : définir la pâte
  • presse i
  • SHIFT + Insert (avec un texte copié dans votre presse-papiers)


Quitter le mode Coller

  • ESC
  • : set nopaste
  • presse i

Vous avez collé le texte et vous pouvez taper à nouveau.

1
Anis Smail

Essayez cette chaîne: Control + R puis Shift + =

0
xliiv

Définissez la variable Bash $ EDITOR sur l’un des choix, c.-à-d.

      export $EDITOR=/usr/bin/nano 

Puis utiliser Ctrl-xCtrl-e ce lancement nano. Ensuite, vous pouvez coller une sélection multiligne après l’enregistrement et revenir à Shell avec la commande remplie à partir de l’édition. # pdate juste après un moment, je veux ajouter que le truc avec nano est basé sur la nouvelle capacité de WSL acquise comme mentionné dans une mise à jour 2018.

0
Yurij

Cette question a été écrite en juin 2017 et beaucoup ont demandé un support pour copier/coller WSL. En réponse, Microsoft a publié une mise à jour en avril 2018: les opérations de copie et de collage arrivent pour les consoles Linux/WSL :

À partir de la version 17643 de Windows 10 Insider, vous pouvez copier/coller du texte depuis/vers les consoles Linux/WSL !!!

Nous savons que vous attendez cette fonctionnalité BEAUCOUP d’entre vous - nous vous remercions sincèrement de votre patience et de votre soutien constant pendant que nous avons démêlé les éléments internes de la console, ce qui nous a permis d’implémenter cette fonctionnalité.

Pour vous assurer de ne briser aucun comportement existant, vous devez activer l'option "Utiliser Ctrl + Maj + C/V en tant que copier/coller" dans la page de propriétés de la console "Options".

Remarque: Vous aurez besoin de la mise à jour Windows de septembre 2018 pour utiliser la nouvelle fonctionnalité.

0
WinEunuuchs2Unix

J'ai eu ce problème lors de l'utilisation de cmder/ConEmu comme émulateur de terminal.

Il existe un paramètre ConEmu pour le collage, qui est défini par défaut sur une seule ligne avec Ctrl + V et sur plusieurs lignes avec Shift + Insert.

Changer le réglage pour le mode de collage n ° 2 de Single line à Multi lines comme dans la capture d'écran suivante a corrigé cela pour moi.

ConEmu paste settings

0
roganartu