Come posso fare un blocco di ricerca e sostituzione con Vim?


8

Ho del testo in Vim

  1. premi Ctrl+Vper mettere VIm in modalità blocco
  2. evidenziare il testo che desidero
  3. digitare :this dà questo prompt:'<,'>
  4. Aggiungo al prompt il mio regex s/ /*/g. Questo mi lascia con :'<,'>s/ /*/ge il testo evidenziato
  5. Ho premuto invio

Sfortunatamente, opera su tutta la linea per il blocco, non solo per il blocco. Esiste un modo per cercare e sostituire un blocco?

Risposte:


12

Quando si usano i comandi ex in modalità blocco visivo :, funzionano sempre su tutta la linea. Ci sono due modi per aggirare questo:

  1. L' \%Vatomo corrisponderà solo all'interno dell'area visiva. Provare

    :'<,'>s/\%V /*/g
    

    Vedere :help %V

  2. Esistono speciali versioni visive di alcuni comandi, live v_s o v_r. Vedere:help visual-operators

Non riesco a capire come farlo funzionare
Evan Carroll,

l'atomo \% V limiterà un modello in modo che corrisponda solo all'interno della selezione visiva. Prova:'<,'>s/\%V /*/g
DaveParillo,

1
Questa pagina ha una buona descrizione di ciò che stai cercando di fare. vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection
DaveParillo
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.