2012-01-18 30 views
28

Me pregunto si es posible tirar algo que he escrito en la línea de comandos de vim para poder pegarlo de nuevo.Cómo arrancar desde la línea de comandos

Esto sería particularmente útil porque a menudo pruebo patrones de búsqueda/reemplazo simplemente buscándolos primero y, si coinciden con lo que necesito, me gustaría poder copiar esa expresión buscada desde la línea de comando y Úselo en mi función de búsqueda/reemplazo.

Ya sé que puede pegar en la ventana de comandos usando <ctrl-r><buffer> y me pregunto si hay un comando similar a este que quitará toda la ventana de comandos.

+0

Las preguntas de Vim son generalmente sobre el tema. Ha habido mucha discusión al respecto. Ver http://meta.stackexchange.com/questions/25925/vim-questions-so-or-su por ejemplo, es bueno. – lucapette

Respuesta

45

Puede usar el command line window. Use q + : para abrirlo. Luego puede navegar por la ventana como uno normal y tirar de lo que quiere tirar.

+14

Ah, finalmente sé lo que es esa ventana - A veces la abrí por accidente cuando trato de salir vim. – BergmannF

+1

Sí, exactamente. Recuerdo las primeras veces que me pasó a mí y dije "¿Qué diablos es eso?" :) – lucapette

+12

También puede usar 'q /' para acceder al historial de búsqueda de una manera similar. Esto es útil cuando intenta ajustar/refinar un patrón de búsqueda. –

12

Vim almacena el comando ingresado más recientemente en el registro : y la expresión buscada más recientemente en el registro /. Como ya sabe cómo pegar en la ventana de comandos, puede simplemente escribir <Ctrl-R>/ para pegar lo que haya buscado por última vez.

+5

Para agregar a esto, vim es lo suficientemente inteligente como para usar los contenidos del registro '/' si simplemente omite el patrón de búsqueda en un comando ': substitute'. Por ejemplo, si ha buscado 'foo', entonces': s // bar' vim reemplazará 'foo' con' bar' sin necesidad de copiar o pegar. –

6

Otras formas:

  • si la opción 'cedit' no ha sido anulado pulse Ctrl-F al entrar en la línea de comandos. Luego tiene acceso a un subconjunto del modo normal para editarlo. :help 'cedit'
  • Si necesita la última línea de comando ingresada, puede usar :put : (variante de la respuesta de David Brown y confiar en el registro de dos puntos que contiene el último comando).
Cuestiones relacionadas