2010-12-15 19 views
5

Algo que quiero hacer de vez en cuando es pegar la salida de un comando vim en el búfer. P.ej. cuando estoy editando mi vimrc, sería bueno poder jugar con statusline y luego ser capaz de simplemente hacer algo parecido a¿Hay alguna manera de pegar la salida de un comando vim en el búfer?

"=set statusline?<Enter>p 

El problema es que los rendimientos

E121: Undefined variable: set 
E15: Invalid expression: set statusline? 
Press ENTER or type command to continue 

I imaginar que esto es posible, y que simplemente no sé lo suficiente sobre las funciones integradas y cómo usarlas (veo expand usado aquí y allá, pero nunca lo he hecho funcionar para mí en ningún contexto), aunque yo (Pienso que yo) tengo una comprensión bastante sólida del modo normal.

Tenga en cuenta que este ejemplo específico es un poco artificial, pero no se me ocurre uno mejor en este momento. Para el caso de uso específico anterior, pude simplemente ":p obtener todo el comando set que utilicé durante la experimentación y luego editar para adaptarlo, pero bastante a menudo me encuentro con otros casos en los que quiero que vim me diga algo y luego quiero pegar esa salida en algún lugar para que pueda seguir mirándola mientras continúo con mi trabajo.

Respuesta

4

puede pegar una opción de configuración:

"=&statusline<Enter>p 

Yo no sé de ninguna manera de poner la salida de un comando arbitrario en el búfer, sin embargo.

+3

'redir' la salida en un registro y luego pegar el registro funcionaría. ¿O estás hablando de otra cosa? –

+0

@Herbert Sitz Creo que tienes la mejor respuesta a esta pregunta. No sabía sobre ': redir'. –

+0

En realidad, me gusta la opción de pegar directamente, es algo que no he usado y comenzaré a usarme. . . Gracias. –

4

Los valores de la configuración se almacenan en variables que se anteponen con un símbolo &. Por lo tanto, se puede acceder al valor statusline al hacer referencia &statusline. Insertar en un documento de una forma es usar el registro "expresión", <ctrl-R>=. Para usarlo, ingrese el modo de inserción y presione <ctrl-R> y luego =. Verá un signo igual en la línea de comando, donde puede ingresar: &statusline y luego presione enter. Esto insertará el valor en el búfer.

+0

Gracias- Normalmente no estoy en el modo de inserción cuando hago esto, pero es bueno saber que las configuraciones están referenciadas con el símbolo comercial. –

Cuestiones relacionadas