Vous pouvez copier la ligne supérieure affichée dans less
la sélection X11 CLIPBOARD en tapant avec less
:
|.head -n1|xclip -sel c<Enter><Enter>
Cela redirige le moins de tampon de la ligne supérieure vers la .
marque (donc en fait tout le contenu de l'écran) vers la head -n1|xclip -sel c
commande (pour stocker la première ligne de celle-ci dans la sélection CLIPBOARD)
Vous pouvez configurer votre émulateur de terminal pour coller cette chaîne lors d'une pression de touche donnée, ou la lier à une touche ou à une combinaison de less
touches dans les raccourcis clavier. Par exemple, pour le lier sur Alt+C:
printf '%s\n' '#commands' '\ec pipe .head -n1|xclip -sel c\n' | lesskey -
Notez cependant que vous devrez appuyer sur Enteraprès pour confirmer l'invite "| done (appuyez sur RETOUR)".
Avec xterm
, vous pouvez également définir un nouveau mode de sélection, par exemple ici lorsque vous maintenez Ctrl+Altlors de l'extension de la sélection qui indique less
quelles lignes copier à partir de son écran actuel:
Écrivez un lesspaste
script comme:
#! /bin/sh -
start=${1%%";"*}
end=${1#*" "}
end=${end%";"*}
head -n "$((end))" | tail -n "$((end - start + 1))" | xclip -sel c
Et définissez les tables de traduction xterm (ici sur la ligne de commande pour les tests, mais vous voudrez l'ajouter à un fichier de ressources X):
xterm -xrm 'XTerm.VT100.translations: #override \
Meta Ctrl<Btn1Down>: select-start()\n\
Meta Ctrl<Btn1Motion>: select-extend()\n\
Meta Ctrl<Btn1Up>: select-end(SECONDARY) \
insert-formatted("|.lesspaste '\''%P %p'\''\n\n", SECONDARY)'
Vous marqueriez ensuite les lignes à coller en faisant glisser la souris en Ctrl+Altmaintenant enfoncée, et en relâchant le bouton 1, xterm en dirait moins pour diriger l'écran actuel vers notre lesspaste
script avec les coordonnées de début et de fin passées comme un argument ( y1;x1 y2;x2
).
(notez qu'il peut ne pas fonctionner correctement s'il less
est invoqué avec -s
pour compresser les lignes vides (comme cela est typique lorsqu'il est invoqué par man
), car l'entrée alimentée lesspaste
n'aura pas ses lignes vides compressées (donc les décalages de numéro de ligne peuvent être incorrects)) .