Quel est le mode de sélection et quand est-il pertinent de l'utiliser?

37

J'ai accidentellement appuyé sur ghen mode normal et commencé une sélection, alors j'ai regardé le document et trouvé :h Select-mode.

D'après ce que j'ai compris, le mode de sélection est proche du mode visuel, sauf que:

  • Tapez un caractère imprimable <CR>ou <BS>supprimez la sélection, démarrez le mode insertion et remplacez la sélection par la saisie.
  • hjkl et d'autres mouvements en mode normal ou visuel ne prolongeront pas la sélection, sauf s'ils sont préfixés par <Shift>
  • <CTRL-O>et <CTRL-G>passera en mode visuel.
  • La doc indique également ce qui suit, ce qui, si je comprends bien, signifie qu’il est possible de faire une sélection ligne par ligne qui est ensuite traitée caractère par caractère:

    Lorsque vous utilisez un opérateur en mode Sélection et que la sélection est effectuée ligne par ligne, les lignes sélectionnées sont utilisées, mais comme dans la sélection caractère par caractère. Par exemple, lorsqu'une ligne entière est supprimée, elle peut ensuite être collée à mi-chemin d'une ligne.

Je suis un peu confus parce que je ne comprends pas pourquoi ce mode a été créé: tout ce que je peux voir, c'est qu'il est moins pratique que le mode visuel et ne fournit pas plus de fonctionnalités.

En outre, les recherches que j'ai effectuées donnent toutes des résultats sur la sélection en mode visuel, mais ne traitent pas le mode de sélection.

Donc mes questions sont:

  • Pourquoi le mode de sélection a-t-il été créé?
  • Quels sont ses avantages par rapport au mode visuel?
  • Quel est un cas d'utilisation où il est plus intéressant d'utiliser le mode de sélection?

MetaNote Je ne sais pas quelle balise est pertinente pour cette question, n'hésitez pas à la ressaisir si nécessaire.

statox
la source
Pour moi, cela ressemble à ce que vous attendez de la plupart des éditeurs d’interface graphique. (La sélection d’une ligne ne signifie pas qu’elle va passer à une nouvelle ligne lors du collage, que les touches Maj + etendre le soient, que la frappe remplace la sélection, tout ce que j’attendais du bloc-notes, par exemple).
muru
@muru: Je conviens que cela rappelle ce type d'éditeur, mais cela signifie-t-il que ce mode aurait été mis en œuvre simplement pour faire plaisir à certains utilisateurs qui voudraient utiliser Vim comme mauvais éditeur de texte? Cela me semble assez étrange en fait.
statox
en fait, cette propriété de collage est utile dans certains cas. Je suis sûr que quelqu'un a posté une question sur le collage de ce type ici. Et comme pour l'écrasement, cela enregistre une frappe (vous n'avez pas besoin d'appuyer sur c), ainsi, en fonction de ce que vous voulez faire, le mode de sélection peut être utile. Dommage que je n'arrête pas de l'oublier.
muru
Je vais essayer de trouver cette question alors. Pour l'écrasement, je n'ai pas vraiment l'impression qu'il cs'agit d'une frappe de touche enregistrée, car la sélection n'est pas aussi pratique qu'en mode visuel (car vous ne pouvez pas utiliser eou iwdirectement).
statox
1
Vous avez raison: quand 'selectmode'contient mouseet 'mouse'contient un drapeau pour le mode actuel, la sélection avec la souris lancera le mode de sélection (selon le document).
statox

Réponses:

23

L’intérêt du mode sélection est de fournir un comportement de sélection similaire à celui utilisé dans les éditeurs classiques.

Sur la même note, mswin.vim modifie un grand nombre d’options et de mappages pour donner à Vim le sentiment d’être un éditeur classique.

Je ne peux que supposer que ceux-ci ont été ajoutés pour satisfaire un sous-ensemble d'utilisateurs de Vim, probablement au moment où Vim a été porté sur Windows (je peux ressentir un certain dédain pour Windows dans la doc).

Quoi qu'il en soit, le mode de sélection est essentiel aux plugins d'extension d'extraits et peut être utilisé pour le plaisir et le profit:

nnoremap § *``gn<C-g>
inoremap § <C-o>gn<C-g>
snoremap <expr> . @.
romainl
la source
2
Je pense qu'il est assez surprenant de porter Vim sous Windows et de créer ce type de mode pour faire plaisir aux utilisateurs: s'ils souhaitaient un éditeur "classique", pourquoi utiliseraient-ils alors Vim? Mais cela semble être la seule explication alors ... De plus, je ne comprends pas vraiment le bénéfice de vos mappages: pour autant que je sache, ils sélectionnent le mot sous le curseur en mode de sélection, une fois que vous avez terminé, pourquoi utile?
statox
1
Une fois le mot sélectionné, tapez quelque chose, puis appuyez sur §pour sélectionner l'occurrence suivante, tapez quelque chose d'autre, puis appuyez à §nouveau pour sélectionner l'occurrence suivante, etc. Vous pouvez appuyer sur .pour répéter la dernière insertion. C'est une variante de "la formule à points".
Romainl
Je ne comprends toujours pas. En quoi le comportement de sélection ressemble-t-il davantage aux éditeurs classiques?
still_dreaming_1
7
@ still_dreaming_1, dans un éditeur classique, tapez-le fooet sélectionnez-le. Vous n'avez pas besoin d'appuyer sur une touche pour remplacer ce qui a été sélectionné, n'est-ce pas? C'est ce que le mode de sélection émule.
romainl
1
@romainl quel est ce caractère "double S" que vous tapez? Comment tapez-vous ce personnage?
Michael