2012-07-30 12 views
8

Usando vim Me gustaría reemplazar todos los caracteres hasta cierto con otro, digamos un espacio en blanco - sin afectando el diseño/número de caracteres en la línea. He aquí un ejemplo:vim: reemplaza todos los caracteres hasta un token dado

Antes:

real(kind=R12), intent(out) :: my_var 

Después de reemplazar , intent(out) con espacios en blanco (es decir, a partir de ,, y subiendo a )):

real(kind=R12)    :: my_var 

que sé sobre r para reemplazar un carácter , y alrededor de nr para reemplazar los caracteres n, pero me gustaría saber si puedo realizar mi tarea sin tener que contar el char acters que quiero reemplazar.

¡Muchas gracias por sus respuestas!

Respuesta

20

modo visual es probablemente el camino más corto aquí:

vt:r 
  • v entrar en el modo visual
  • t: seleccione hasta :
  • r (espacio nota después r) reemplazar región seleccionada con espacios.
+0

¡Gracias, eso funciona maravillosamente! – canavanin

+2

Solo para observar, puedes usar cualquier movimiento, no solo 't'. 'f','/', etc. todo funciona también. – kenny

+0

¡Exactamente lo que estaba buscando! Recordé haber hecho esto accidentalmente, así que sabía qué buscar. ¡Gracias! – itmuckel

0

Puede usar expresiones regulares aquí (use (.*?) para hacer referencia a todos los valores hasta un token).

Por ejemplo:

la expresión regular: (.*?)foo se librará de todo hasta foo.

+0

en Perl tal vez, en vim el cuantificador no codicioso es '\ {-}'. – Thor

1

lo que sé de r para reemplazar un carácter

¿Sabía que R se mantendrá en ese modo de reemplazo? Así que puede presionar R y luego mantener Espacio hasta que haya reemplazado todo lo que desea.

Sin embargo, todavía seguiría con la respuesta de Thor. El modo visual le permite usar los métodos eficientes de navegación de texto en vim sin tener que contar los caracteres.

Pero si no está de acuerdo, siempre hay EasyMotion.

0

En el modo de comando escriba 'df?' para eliminar hasta ese (?) carácter. Luego 'i' para volver a insertar.

Por ejemplo, si la siguiente frase es, en su opinión:

The wizard quickly jinxed the gnomes before they vaporized. 

y entrar DFS

se le dejó con:

before they vaporized. 
+0

nota: ** dts ** eliminará hasta la s pero saldrá de la s. –

Cuestiones relacionadas