Risposte:
Buona domanda!
Come movimento da solo, hai ragione, _non è una chiave particolarmente utile.:h _
*_*
_ <underscore> [count] - 1 lines downward, on the first non-blank
character |linewise|.
La parola chiave qui è "linewise". Quindi, se il vostro obiettivo è quello di spostare semplicemente il cursore, quindi ^, je +ottenere tutto il lavoro fatto, e non c'è molto punto a _. Ma come argomento per un operatore, _è super potente.
Molte scorciatoie a doppio tasto sono in realtà solo scorciatoie per _. Per esempio,
dd -> d_
cc -> c_
yy -> y_
Y -> y_
ecc. Poiché si tratta di un movimento lineare, seleziona sostanzialmente l'intera linea su cui operare indipendentemente dal punto in cui inizia il cursore, mentre ^passa dal carattere al primo non vuoto.
Mi aiuta quando penso a movimenti lineari contro blocchi di senso immaginare che sto premendo uno vo Vproprio prima del movimento. Quindi immagino d^di essere equivalente a v^de immagino d_di essere equivalente a V_do V^d. Ovviamente, puoi anche ignorare un movimento per forzarlo in modo lineare o caratteristico. Quindi dv_in realtà è esattamente la stessa d^o v^d, e dVwè come Vwdche è esattamente come d_.
La ragione per cui è specificamente la riga "count-1th" è che 1dd(che è davvero d1_) elimina un'intera riga, 2dd(che è realmente d2_) elimina 2 intere righe, 3ddelimina 3 intere righe, ecc.
ddpotrebbe essere più conveniente di d_, ma è perché ddè solo una mappatura per d_. Ed è anche utile in vimscript.
gUU? Penso che varrebbe la pena trovare un esempio reale di dove <operator>_sarebbe usato.
ddè più facile did_ed3yjè più facile di4y_.