2012-10-12 127 views

Respuesta

22

Mi sugerencia es utilizar un rango combinado con la búsqueda hacia atrás a través de ?.

:1?XXXX 

Descripción general:

  • 1?XXXX es la gama.
  • El 1 significa la primera línea del archivo.
  • ?XXXX medios búsqueda hacia atrás desde la primera línea (envolver alrededor) hasta que encuentre el patrón XXXX

como ZYX mencionó esto se basa en wrapscan que desea ajustar, el cual es por defecto. Consulte :h 'wrapscan' para obtener más información.

+5

Una nota: la opción 'wrapscan' debe estar habilitada para usar esto (es por defecto). – ZyX

5

ir a la última línea usando G y hacer búsqueda hacia atrás usando ?XXXX

+1

Y omita una posible aparición de 'XXXX' en la última línea. –

+0

@ib nice one, me gusta. así que tal vez sea mejor usar un '$' antes de la búsqueda. – none

40

Tipo G$?XXXX

  • G para ir al final del archivo
  • $ para ir al final de la línea
  • ? para buscar hacia atrás
  • XXXX ser lo que desea buscar

También puede hacer gg?XXXX que va al inicio del archivo, a continuación, busca hacia atrás, envolviendo al final del archivo. Sin embargo, para archivos de gran tamaño, puede tardar en buscar hasta el inicio del archivo y, luego, de forma inmediata hasta el final del archivo.

+0

Y omitir una posible aparición de 'XXXX' en la última línea. –

1

Una forma es:

gg?<string> 

que pondrá el cursor al comienzo del archivo y realizar una búsqueda hacia atrás. Dado que será imposible que vim vaya a antes de posición del cursor, realizará una búsqueda comenzando desde el final del archivo.

Cuestiones relacionadas