Cela se produit si j'utilise ctrl + shift + v ou que je colle dans le menu contextuel.
Comment arrêter ce comportement?
Cela se produit si j'utilise ctrl + shift + v ou que je colle dans le menu contextuel.
Comment arrêter ce comportement?
Réponses:
Ne copiez pas plusieurs lignes de texte à coller. Je peux presque garantir que vous copiez simplement la dernière partie de la ligne. Si vous cliquez trois fois pour copier la ligne de code que vous collez, vous obtenez la nouvelle ligne à la fin de la ligne. Si vous voulez être sûr, c'est vraiment le problème, alors copiez la ligne entière, à l'exception de la dernière lettre / chiffre, et voyez si le collage qui inclut également une nouvelle ligne.
Le texte que vous collez comprend une nouvelle ligne de fin. Lorsque vous collez une nouvelle ligne, le shell exécuté dans le terminal voit cela comme une pression Enter, il exécute donc la commande.
L'opération de collage est effectuée par l'émulateur de terminal; il passe le texte collé à l'application en cours d'exécution dans le terminal, de la même manière qu'il passe le texte tapé par l'utilisateur. Voir Comment fonctionnent la saisie au clavier et la sortie du texte? pour plus d'informations sur le fonctionnement de l'entrée. L'application (ici, le shell) n'a aucun moyen de distinguer entre les frappes et une opération de collage.
De nos jours, de nombreux émulateurs de terminaux prennent en charge la pâte entre crochets . En mode collage entre crochets, l'application peut distinguer une opération de collage des frappes. La pâte entre crochets n'est utile que si l'application fait quelque chose de différent avec du texte collé, elle est donc activée en prenant en charge les applications, ce n'est pas quelque chose qui est configuré par l'utilisateur de l'émulateur de terminal.
Zsh 5.1 (qui est sorti il y a quelques semaines, n'est donc pas encore disponible dans la plupart des distributions) ajoute la prise en charge du mode de collage entre crochets. Lorsque vous collez du texte, il est simplement inséré sur la ligne de commande et vous pouvez le modifier avant d'appuyer sur Enterpour exécuter la ligne de commande.
Les utilisateurs de oh-my-zsh peuvent utiliser le plug-in Safe-paste même dans les versions antérieures de zsh.
Une autre chose que vous pouvez faire dans zsh est de lui faire insérer la sélection sous forme de chaîne, avec des guillemets (sous forme de barres obliques inverses avant chaque caractère spécial du shell tel que les espaces). Tapez `xsel`
pour obtenir la sélection principale (sélection automatique de la souris) ou `xsel -b`
pour obtenir le contenu du presse-papiers (texte copié avec Ctrl+ C), puis appuyez sur Tab.
Si vous avez une ancienne version de zsh et que vous souhaitez insérer le contenu du presse-papiers sans citer, vous pouvez définir une fonction qui insère la sélection.
function zle_insert_x_selection {
LBUFFER+=$(xsel ${NUMERIC+-b} -o </dev/null)
}
zle -N zle_insert_x_selection
bindkey '\e\C-v' zle_insert_x_selection
Avec ceci dans votre .zshrc
, vous pouvez appuyer sur Ctrl+ Alt+ Vpour insérer la sélection principale, ou Ctrl+ U Ctrl+ Alt+ Vpour insérer le contenu du presse-papiers. Ils sont insérés avant le curseur, inchangés sauf sans retour à la ligne. Voir Partager le presse-papiers entre bash et X11 pour quelque chose de similaire dans bash.
Si vous utilisez bash comme shell, vous pouvez appuyer sur Ctrl-X Ctrl-E
pour afficher un éditeur (défini par $ VISUAL ou $ EDITOR, par exemple vi
ou peut-être nano
).
Vous pouvez ensuite coller vos commandes exactement comme vous le feriez si vous éditiez un fichier. Ils seront exécutés si vous enregistrez et quittez. Ou annulé si vous quittez sans enregistrer.
Pour faire un collage multiligne sur une invite de commande, ouvrez des guillemets simples ou doubles avant de les coller.
$ echo '
paste
...
...
'
Ensuite, vous pouvez appuyer sur Retour pour l'écho. Lorsque vous faites une flèche vers le haut, toutes les lignes que vous avez collées seront sur une seule ligne modifiable.
Cela fonctionne tant qu'il n'y a pas une seule citation dans le texte que vous collez.
Dans une fenêtre d'éditeur de texte, utilisez les raccourcis suivants pour copier du texte sans \ n (le saut de ligne):
Dans une fenêtre de navigateur ou autre chose où le texte n'est pas modifiable, utilisez l'une des deux techniques suivantes:
À quoi ressemble une bonne sélection (sans \ n):
ls -al
À quoi ressemble une mauvaise sélection (avec \ n):
ls -al