7 votes

le copier/coller d'une grande quantité de texte sur le terminal entraîne des caractères brouillés/manquants

Je travaille avec TextMate et R sur le terminal. Lorsque je colle beaucoup de code (CMD+C/CMD+V, par exemple 60 lignes), il arrive que quelques caractères du code soient brouillés, ce qui entraîne des messages d'erreur et une mauvaise exécution du code.

Par exemple :

col <- ifelse(...

se transforme en

col < col < cse(...

ou

seulementDF

se transforme en

oalyDF

Ces remplacements de caractères semblent très aléatoires et il est difficile de prévoir quand ils se produisent.

Le problème est également décrit ici pour iterm2 : https://gitlab.com/gnachman/iterm2/issues/3160

L'explication fournie est qu'il s'agit d'un bogue dans bash qui peut entraîner la perte d'une entrée mise en mémoire tampon en raison de la vitesse de collage.

Quelqu'un a-t-il rencontré ces problèmes et trouvé une solution de contournement pour l'application de terminal native de Mac OS (par exemple, en modifiant la vitesse de collage, si cela est possible dans le terminal) ?

6voto

Gordon Davisson Points 30215

Vous pouvez utiliser le pbpaste pour obtenir le texte dans le tableau sans passer par les caprices du pilote du terminal, les dépassements de tampon, etc. Pour placer le texte coupé dans un nouveau fichier, utilisez :

pbpaste >myfile.txt

Pour ajouter, utilisez >> , etc. De même, vous pouvez transmettre le contenu du tableau à d'autres commandes en tant qu'entrée :

pbpaste | somecommand

Et si vous utilisez le vi vous pouvez insérer le contenu du tableau dans votre fichier avec :

:r !pbpaste

BTW, il y a également un pbcopy pour placer du texte dans le tableau. Contrairement aux redirections de fichiers standard, vous peut permet de modifier de manière non destructive le contenu du tableau "en place" :

pbpaste | sed 's/foo/bar/' | pbcopy

...et si vous voulez voir le résultat aussi :

pbpaste | sed 's/foo/bar/' | tee /dev/tty | pbcopy

5voto

David Anderson Points 30783

Lorsque je dois coller beaucoup de texte dans une fenêtre de l'application Terminal, j'utilise la commande cat pour transférer le texte dans un fichier. Par exemple, je saisirais la commande ci-dessous avant de coller le texte avec la commande + V combinaison de touches.

cat >myfile.txt

Lorsque vous avez fini de coller le texte, entrez le control + D combinaison de touches. Cette opération met fin à la cat commande.

Note : Le control + D doit être introduite en début de ligne. Si ce n'est pas le cas après avoir collé le texte, appuyez sur la touche return avant d'entrer dans le control + D combinaison de touches.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X