2012-01-13 31 views
12

Decir que tengo el siguiente código:vim: eliminar todos los espacios en blanco hasta el próximo carácter no en blanco

<p> 
    Hello 
</p> 

Y quiero que sea

<p>Hello</p> 

me gustaría poner el cursor en modo normal al final de la línea 1, así que en el '>' y tiene un comando para eliminar todos los espacios hasta el próximo carácter. Lo más cerca que puedo pensar es el movimiento

d/Hello 

que borra todo hasta Hola, pero el problema es que se elimina también el carácter bajo el cursor (el '>'), así que termino con

<pHello 
</p> 

¿Cómo harías eso?

+3

Antes de votar para cerrar, lea esto: [Preguntas de Vim: SO o SU] (http://meta.stackexchange.com/questions/25925/vim-questions-so-or-su) –

Respuesta

16

Una manera en que no tendrá que repetir esta acción varias veces.

JxJx 

Explicación:

J   # Join current line with next one but substitute end of line with a space. 
x   # Remove the space. 
Jx   # Repeat same process for last line. 
+0

Necesito hacerlo muchas veces e intentar repetir la acción mediante '.', pero eso solo repite la' x' no la 'J'. ¿Puede agregar un ejemplo si necesita repetir esto varias veces? – k0pernikus

6

Hay un texto a objetos tag en vim: cursor

  • puesto dentro de la etiqueta, presione cuba para seleccionar toda la etiqueta
  • prensa :, se convierte en :'<,'>
  • tipo j , se convierte en :'<,'>j
  • prensa Entrar para unirse a las líneas

:help v_at 

at   "a tag block", select [count] tag blocks, from the 
      [count]'th unmatched "<aaa>" backwards to the matching 
      "</aaa>", including the "<aaa>" and "</aaa>". 
      See |tag-blocks| about the details. 
      When used in Visual mode it is made characterwise. 
+2

'vatJ' obtener los mismos resultados. – Kambus

+3

Esto realmente no responde la pregunta debido a los espacios añadidos por ': join'. –

1

Al estar de pie en cualquier lugar en la segunda línea (la que dice Hello), presione las siguientes teclas: ^d0vatgJ. Explicado de manera sencilla:

  1. ^ irán a la primera no está en blanco, H
  2. d borrará al principio de la línea
  3. vunt seleccionará toda la etiqueta
  4. gJ se unirá a todas las líneas sin insertar espacios

Si se inicia en el H, puede omitir la parte ^.

Cuestiones relacionadas