Je viens de découvrir que je peux ajouter les lignes suivantes à ~/.vimrc
.
set mouse=a
:vmap <C-C> "+y
Cela a pour effet de pouvoir sélectionner du texte avec la souris (c'est-à-dire en mode visuel), puis de copier le texte réel dans le presse-papiers X avec Ctrl+ c. Cela diffère de la copie par défaut du terminal, car c'est le vrai texte que je copie, pas ce que le terminal voit. Par exemple, s'il y avait des tabulations dans le texte, je les copiais auparavant en tant qu'espaces.
Existe-t-il un moyen de faire moins se comporter de la même manière? c'est-à-dire que je peux copier mot pour mot ce qui se trouve dans le fichier texte que je consulte en moins?
Réponses:
Pas une tâche pour moins
Non,
je ne pense pas que vous puissiez le faire directement, car less n'a pas de curseur pour commencer.
Il en faudrait un pour naviguer au début et à la fin du texte à sélectionner.
less
n'est tout simplement pas le bon outil pour la navigation au niveau des personnages.Onglets déjà développés
Vous pouvez utiliser la touche shiftet la souris pour faire une sélection; Ceci est géré par le terminal, pas par moins. Mais le terminal ne sait pas comment les espaces et les tabulations sont disposés - moins l'interprétation des tabulations en interne et n'écrit que des
caractères " " normaux à l'écran.
Il existe des outils comme
screen
,tmux
etbyobu
, qui peuvent faire beaucoup de choses impressionnantes dans ce domaine. Je n'ai pas vérifié, mais je suppose que ces multiplexeurs de terminaux n'ont aucun moyen de contourner cela - étant des terminaux, au final - et se comporteront de la même manière.Utilisez vim
Si vous montrez un fichier
less
, il y a une bonne solution:Appuyez sur la touche vdans
less
pour ouvrir le fichier en cours dansvim
- Asuming votre$EDITOR
etc. , est mis en place pourvim
.Cela ne fonctionne pas lors de l'affichage de stdin à partir d'un pipeline, bien qu'il existe des solutions de contournement .
Défilement de la souris, au moins
Mais vous pouvez au moins faire défiler avec la molette de la souris:
Cela semble même être activé par défaut, mais les événements de la molette de la souris sont supprimés par une option différente.
Pour un test rapide, essayez:
L'option
-X
(--no-init
) bloque le défilement - vérifiez ce queLESS
contient votre variable d'environnement :L'option
-q
(--quiet
,--silent
) cause également des problèmes, selon SU: Comment faire défiler la molette de la souris avec moins de pageur en utilisant bash et gnome-terminal?la source
v
clé est fantastique! (J'ai pris la liberté d'une solution de contournement sympa pour le faire fonctionner également dans les pipelines.) FWIW dans mon émulateur de terminal (terminateur) Je n'ai pas à maintenir la touche Maj lorsque je sélectionne du texte.vimpager
que vous pouvez utiliser pour remplacer laless
vente entière. Il utilisevim
en fait juste enveloppé dans un petit script.vimpager
semble assez cool, mais j'ai eu des problèmes avec le tirage qui me fait préférer utiliser moins etv
.vimpager
jusqu'à ce qu'il fonctionne; (J'essaie de ne pas activer tous mesvim
plugins au démarragevimpager
...)Vous pouvez copier la ligne supérieure affichée dans
less
la sélection X11 CLIPBOARD en tapant avecless
:Cela redirige le moins de tampon de la ligne supérieure vers la
.
marque (donc en fait tout le contenu de l'écran) vers lahead -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: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 indiqueless
quelles lignes copier à partir de son écran actuel:Écrivez un
lesspaste
script comme: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):
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é parman
), car l'entrée alimentéelesspaste
n'aura pas ses lignes vides compressées (donc les décalages de numéro de ligne peuvent être incorrects)) .la source
less
censé donner une rétroaction?j
ne semble rien faire pour moi.less
,j
défile d'une ligne (forw-line
) dans le raccourci clavier par défaut (en faitJ
(forw-line-force
) serait mieux ici, je vais modifier).|
devrait vous donner quelques commentaires. (invite pour la marque, puis la commande pour entrer).j
n'ai rien fait. La première option fonctionne désormais (+1). La deuxième option semble assez compliquée avec quelques mises en garde, donc je ne l'ai pas essayée. Je pense quev
c'est assez bon pour moi.