Come modificare il blocco selezionato visivamente con comando esterno?


9

Ho un file composto da due parti verticali. Sul lato sinistro, i dati sono già formattati e non voglio cambiarli. Voglio solo formattare i dati sul lato destro. Di 'che ho un file con linee come

foo=bar baz     # Neato       Junk
quux=xyzzy      # Bilbo Baggins Ring

con molte più righe del genere. Voglio solo modificare il testo a destra del carattere '#'. Ho selezionato il testo desiderato con le seguenti espressioni:

gg
/#
ctrl-v
G
$

ma se poi provo a modificarlo (diciamo, con :'<,'>!column -t), in realtà modifica l'intera riga. Qual è l'espressione corretta da usare per modificare solo le parti visivamente selezionate?


2
Potresti provare il plugin vis dal Dr. Chip o dal mio plugin NrrwRgn . Entrambi dovrebbero gestirlo bene.
Christian Brabandt,

Risposte:


6

Puoi anche provare:

gg
^V
G
t#
d
:%!column -t
gg
P

Da :h :visual_example:

Attualmente il comando ":" funziona solo su intere righe. Quando selezioni parte di una linea, facendo qualcosa come ":! Date" sostituirai l'intera linea. Se si desidera sostituire solo parte della linea, è necessario creare una mappatura per essa. In una versione futura ":" potrebbe funzionare su linee parziali.

Vedi anche :h visual-operatorsper i dettagli.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.