locate ... | less
locate ... | less
sorties un long path, qui est montré comme plusieurs lignes dans le terminal, même si elle est en fait une seule ligne.
Je copy le path du terminal en sélectionnant le text avec la souris et en appuyant sur Ctrl + Maj + C. Quand je le colle dans un file text, je reçois une ligne de changement non désirée dans le text, exactement de la même manière que dans le terminal.
Mais je me souviens parfois que je peux copyr un long path d'access en locate ... | less
locate ... | less
, sans introduire de changement de ligne indésirable, et parfois je ne peux pas. Je ne sais pas si je fais quelque chose différemment.
Je me request donc comment faire en sorte que le problème ne se produise pas? Merci!
Mon operating system: Ubuntu 12.04.
Mon terminal: Terminal Gnome 3.4.1.1
Au lieu de copyr ce qui est affiché sur le terminal (seulement ce qui correspond à l'écran, avec), copyz le text actuel. Utilisez l'un des utilitaires externes xsel ou xclip (ils ont principalement les mêmes fonctionnalités, j'utiliserai xsel dans cette réponse) pour copyr des données depuis ou vers le presse-papiers X. Pour copyr dans le presse-papiers, transmettez le contenu souhaité sur l'input standard. Lors du collage à partir du presse-papiers, le contenu est écrit sur la sortie standard.
En less, utilisez le |
command pour diriger un groupe de lignes à travers une command. Faites défiler jusqu'à la première ligne sur laquelle vous voulez agir, tapez mm
pour définir une marque, |mxsel -b
défiler jusqu'à la dernière ligne et tapez |mxsel -b
et appuyez sur Entrée . Deux marques sont prédéfinies: ^
pour le début du file, $
pour la fin du file. Ainsi, pour copyr le file entier, utilisez <|$xsel -b
. Pour copyr une seule ligne, utilisez mm|mxsel -b
et Entrée .
Supprimez l'option -b
pour copyr dans la sélection primaire au lieu du presse-papiers.
Vous pouvez copyr les lignes de sortie sans saut de ligne supplémentaire (sauts de ligne) si le text a été envoyé directement au terminal.
Le terminal peut suivre l'endroit où se termine la vraie ligne.
Mais si les lignes ont été produites par less
ou un programme de pager
similaire, le terminal ne sait pas où les nouvelles lignes sont. Le pager utilise le terminal comme un écran plein de caractères, et dit au terminal "mettre ces caractères là" et des opérations comme le défilement. Mais, pour le terminal, il n'y a aucun moyen de voir où les nouvelles lignes sont prévues.
En less
, si vous select enveloppé plusieurs lignes de text, puis copyz-le, il descend comme une seule ligne.
Si vous appuyez sur PgUp puis copyz le même text, il s'affichera en plusieurs lignes.
PgDn va bien, les flèches vont bien. Mais PgUp provoque la séparation du text.