¿Qué es la grabación de Vim y cómo se puede desactivar?


761

Sigo viendo el recordingmensaje en la parte inferior de mi ventana de gVim 7.2.

¿Qué es y cómo lo apago?


55
Para desactivar la grabación de vim para siempre, agréguelo map q <Nop>a su archivo .vimrc.
Joey Adams

44
¡No puedo creer que quieras desactivar la grabación! Mostraría una ventana emergente realmente molesta '¿Estás seguro?' si se solicita desactivarlo (o probablemente le gustaría ofrecer opciones como la actualización de Windows 10).
0xc0de

Respuestas:


1055

Empiezas a grabar q<letter> y puedes terminar escribiendo de qnuevo.

La grabación es una característica realmente útil de Vim.

Registra todo lo que escribe. Luego puede reproducirlo simplemente escribiendo @<letter>. Búsqueda de registros, movimiento, reemplazo ...

Una de las mejores características de Vim IMHO.


109
Como se ve en otros lugares, es q seguido de un registro. Una parte realmente genial (y posiblemente no intuitiva) de esto es que estos son los mismos registros utilizados por cosas como eliminar, tirar y colocar. Esto significa que puede extraer texto del editor en un registro y luego ejecutarlo como un comando.
Cascabel el

68
Una cosa más a tener en cuenta es que puede presionar cualquier número antes de la @ para reproducir la grabación que muchas veces como (100 @ <letter>) reproducirá sus acciones 100 veces
Tolga E

77
Luego puede agregarlo editando el registro con put / yank. Pero no sé por qué querrías activar o desactivar la grabación como parte de una macro. ('q' no afecta nada cuando se escribe en modo de inserción.)
anisoptera

3
@Wade ": se llama registro predeterminado.
Cascabel

44
and how to turn offtambién era la pregunta
n611x007

103

Escriba :h recordingpara obtener más información.

                           * q *  * grabación * 
q {0-9a-zA-Z "} Grabe caracteres escritos en el registro {0-9a-zA-Z"}
                        (mayúscula para adjuntar). El comando ' q ' está deshabilitado
                        , realizando un registro , y que no funciona en el interior
                        un mapeo . {Vi: sin grabación}

q                        Detiene la grabación . (Nota de implementación: la ' q ' que
                        detiene la grabación no se almacena en el registro , a menos que sea
                         el resultado de una asignación ) {Vi: sin grabación}


                                                        * @ *
@ {0-9a-z ". = *} Ejecute el contenido del registro {0-9a-z". = *} [Cuenta] 
                        veces. Tenga en cuenta que registre ' % ' (nombre del actual
                        archivo) y ' # ' (nombre del archivo alternativo) no pueden ser
                        usado. Para " @ = " se le solicita que ingrese una
                         expresión . El resultado de la expresión es entonces
                        ejecutado. Ver también | @: |. {Vi: solo registros con nombre}


31

Al escribir qcomienza la grabación de macros, y la grabación se detiene cuando el usuario qvuelve a presionar .

Como mencionó Joey Adams, para deshabilitar la grabación, agregue la siguiente línea .vimrcen su directorio de inicio:

map q <Nop>

11
solo responda sobre "cómo apagar" parte de la pregunta. Bueno, hace que la grabación sea inaccesible, apagándola efectivamente; al menos nadie espera que vi tenga un hilo separado para este código, supongo, incluyéndome a mí.
n611x007


15

Significa que está en modo "macro de grabación". Este modo se ingresa escribiendo qseguido de un nombre de registro, y se puede salir escribiendo qnuevamente.


En realidad, se ingresa escribiendo qseguido de cualquier nombre de registro, que es 0-9, az, AZ y ".
ephemient

3
En realidad, es q {0-9a-zA-Z "}: puede grabar una macro en cualquier registro (nombrado por dígito, letra"). En caso de que realmente quiera usarlo ... ejecute el contenido de un registro con @ <register>. Mira :help qy :help @si estás interesado en usarlo.
Cascabel el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.