109 votes

Comment sélectionnez-vous du texte dans vim ?

Dans la plupart des éditeurs de texte, je peux sélectionner du texte en cliquant et en faisant glisser avec ma souris, puis en utilisant Ctrl-C pour copier ce texte, ou Backspace pour le supprimer.

Cependant, comme vim s'exécute dans la console, si je surligne un texte avec la souris, mes commandes vim n'affectent pas ce que j'ai sélectionné.

Quelle est la manière équivalente de sélectionner du texte dans vim?

174voto

Cory Klein Points 5117

Dans vim, le texte est sélectionné en entrant en mode visuel. Cela peut être fait de plusieurs façons.

  • v (v minuscule) commence le mode visuel régulier et fonctionne de manière similaire à la sélection du texte avec une souris. Utilisez h et l pour étendre la sélection vers la gauche et la droite pour inclure plus de mots, et utilisez j et k pour étendre la sélection vers les lignes en dessous et au-dessus.
  • V (V majuscule) commence le mode visuel par ligne. Cela sélectionne des lignes entières de texte à la fois. Utilisez j et k pour étendre la sélection vers le haut et vers le bas.
  • Ctrl+v(v minuscule) entre en mode visuel de bloc. Cela sélectionne du texte au format bloc, vous permettant de sélectionner des parties de plusieurs lignes sans inclure la ligne entière. Utilisez hjkl comme d'habitude.
  • Comme l'a suggéré @FDinoff, si votre émulateur de terminal le prend en charge, vous pouvez même spécifier des sélections visuelles avec la souris en activant l'entrée de la souris avec :set mouse=a.

Une fois que vous avez sélectionné le texte souhaité, vous pouvez utiliser toutes sortes de commandes dessus. Certaines des plus utiles sont:

  • Escaper du mode visuel
  • définir le texte
  • yanker (copier) le texte
  • paster votre presse-papiers sur le texte, en le remplaçant
  • changer le texte, ce qui le supprime et positionne votre curseur pour taper
  • remplacer le texte par le prochain caractère que vous tapez
  • yq/p rechercher le texte ailleurs dans votre document

Vous pouvez en apprendre davantage sur le mode visuel en tapant :help v tout en étant dans vim.

1voto

user2571881 Points 1787

Mettre en surbrillance le texte yanked

Tout d'abord, je voudrais recommander de mettre en surbrillance le texte yanked : https://github.com/machakann/vim-highlightedyank (vim et neovim)

C'est utile car cela vous donnera un indice visuel de ce que vous venez de copier.

Pour neovim :

augroup highlight_yank
    autocmd!
    au TextYankPost * silent! lua vim.highlight.on_yank({higroup="IncSearch", timeout=700})
augroup END

La philosophie de Vim va bien au-delà de la sélection, de la copie, etc.

Commencez à passer plus de temps à lire sur vim/neovim et vous ne reviendrez à aucun autre éditeur.

Ravi de vous rencontrer cher "text-objects"

  • En savoir plus à leur sujet ici

Copiez un paragraphe entier dans le presse-papiers :

"+yip

"+ .................... registre du presse-papiers
y ..................... copier
ip .................... paragraphe intérieur

Copier le fichier entier dans le presse-papiers

:%y+

Testez quelques commandes vim à partir du presse-papiers

:@+

La commande ci-dessus vous permet d'exécuter des fonctions et des commandes vim même si vous ne les avez pas collées dans votre vimrc, il y a quelques exceptions mais en général cela fonctionnera.

Vous pouvez définir vos propres text-objects

" text-objects de ligne vim
xnoremap al :norm! 0v$
xnoremap il :norm! _vg_
onoremap al :norm! val
onoremap il :norm! vil

Donc vous pouvez utiliser vil ou dil

Parfois, vous n'avez pas besoin de sélectionner pour copier Si vous voulez copier la deuxième ligne jusqu'à la fin du fichier, vous pouvez faire :

:2t$

Si vous voulez déplacer les lignes 4 à 7 au début du fichier, vous pouvez faire :

:4,7m0

Copier de la marque a à la marque b :

ma .................. marquer la ligne actuelle comme marque a

Sautez à un deuxième endroit dans votre fichier et ensuite

mb .................. marquer la ligne actuelle comme marque b

enfin :

:'a,'by+

de la marque a à la marque b copie dans le presse-papiers

Plonger dans le vim avancé :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X