Réponses:
Bonne question!
Comme une motion en soi, vous avez raison, _n'est pas une clé particulièrement utile.:h _
*_*
_ <underscore> [count] - 1 lines downward, on the first non-blank
character |linewise|.
Le mot clé ici est "linewise". Donc, si votre objectif est de simplement déplacer le curseur, alors ^, jet +tout le travail est fait, et cela ne sert à rien _. Mais comme argument pour un opérateur, il _est super puissant.
De nombreux raccourcis à double touche ne sont en fait que des raccourcis pour _. Par exemple,
dd -> d_
cc -> c_
yy -> y_
Y -> y_
etc. Parce que c'est un mouvement en ligne, il sélectionne essentiellement la ligne entière à opérer, quel que soit le point de départ de votre curseur, alors ^qu'il passe simplement de votre personnage au premier non vide.
Cela m'aide lorsque je pense aux mouvements en ligne par rapport aux mouvements en bloc d'imaginer que j'appuie sur l'un vou sur l'autre Vjuste avant le mouvement. J'imagine d^donc être équivalent à v^det j'imagine d_être équivalent à V_dou V^d. Bien sûr, vous pouvez également remplacer un mouvement pour le forcer à être linéaire ou à caractère. Donc, dv_c'est exactement la même chose que d^ou v^d, et dVwc'est comme Vwdce qui est exactement comme d_.
La raison pour laquelle il s'agit spécifiquement de la ligne "count-1th" est que 1dd(ce qui est vraiment d1_) supprime une ligne entière, 2dd(ce qui est vraiment d2_) supprime 2 lignes entières, 3ddsupprime 3 lignes entières, etc.
ddpourrait être plus pratique que d_, mais c'est parce que ddc'est juste un mappage vers d_. Et c'est aussi utile dans vimscript.
gUU? Je pense qu'il serait utile de trouver un exemple réel où <operator>_serait utilisé.
ddest plus facile qued_et3yjest plus facile que4y_.