2012-06-02 13 views
37

me encontré con un número de usos esta sintaxis, que no entiendo:¿Qué significa = <c-r> en Vim

El primero se encuentra en: ayuda mapeo:

:map <F2> a<C-R>=strftime("%c")<CR><Esc> 

Esta secuencia realmente inserto el valor de strftime en buffer, aunque no entiendo cómo. Cambiar a algo diferente lo rompe.

Otra uno está en wiki page que describe cómo hacer que el menú emergente omnicompletion funciona bien:

inoremap <silent> <Esc> <C-r>=pumvisible() ? "\<C-y>" : "\<Esc>"<CR> 

lo mismo aquí.

¿Alguien puede explicar cómo funciona este "<C-r>=" cosa? ...

Respuesta

47

<C-r>=, o Ctrl + R= se utiliza para insertar el resultado de una expresión en el cursor.

lo uso mucho cuando la edición de CSS para insertar valores:

width: <C-r>=147-33<CR>px; 
width: 114px; 

EDIT

<C-r>, sin =, le permite insertar el contenido de cualquier registro en el cursor, mientras permaneciendo en inserte el modo: <C-r>+, por ejemplo, inserta el contenido de mi portapapeles del sistema. ver :help i_ctrl_r.

= es el "registro de expresión". Ver :help "=.

EndEdit

+0

Gracias, romainl, mi confusión principal fue con C-r que significa "rehacer" en modo normal y ahora entiendo la cosa. – izhak

+1

para obtener ayuda sobre c-r que desea ': help c_ctrl-r' (es decir, el segundo guión bajo debe ser un guión) – ErichBSchulz

30

<C-r> es como hacer CTRL + R en el teclado. <CR> es como presionar enter. Puede encontrar la lista completa haciendo :help key-notation.

+2

Sé que esto es una pregunta muy principiante, pero, cuando usted: Tecla de ayuda notación que le lleva a la documentación. Luego, si presiono Q, me llevará al modo Ex. Si presiono visual, me devuelve al modo normal, pero me lleva a mirar la documentación. Solo quiero volver a codificar mi archivo original de Python, ¿cómo puedo volver a él? ¡Muchas gracias por tu publicación original! : D – Pinocchio

+1

Supongo que mi pregunta es ¿cómo puedo volver a mi archivo original y salir de la documentación? – Pinocchio

+2

¡Oh, descubrí cómo hacerlo por accidente! Para salir de la documentación solo presione: luego q. es decir, dado que es el modo normal: q saldrá de la documentación y no del archivo real. :) – Pinocchio