Imagina que quieres citar la palabra a continuación. Si |es la posición del cursor, puede citar fácilmente la palabra cw""<Esc>Pdesde el modo Normal.
|below
Quiero lograr el mismo comportamiento en el modo de línea de comandos. Mi pregunta es cómo puedo decirle al modo de línea de comandos que quiero escribir un <Esc>. Intenté :norm cw""<Esc>Py algunas otras variaciones, pero acabo de obtener en ""<Esc>Plugar de "below".
Aún relacionado con esto, me gustaría saber cómo puedo hacer que el modo de línea de comandos escriba comandos Ctrl. Por ejemplo, podría citar la palabra mencionada con cw"<C-r>""<Esc>. Pero entonces necesitaría la línea de comandos para escribir <C-r>por mí. ¿Cómo puedo hacer esto?
command-line
Gonçalo Ribeiro
fuente
fuente

<C-x><C-e>en readline para editar la línea de comandos$EDITOR, tiene<C-f>en Vim para abrir la ventana de línea de comandos. Ver:help cmdline-window.Respuestas:
<C-v>es lo que buscas. Le permite ingresar caracteres literales (p. Ej., Un literal enEsclugar de la cadena "Esc") sin requerir que se escape nada.se muestra como:
y hará lo que quiera (es decir, cite la palabra). También puede usar esto con otras
<C-?>asignaciones. Por ejemplo, su segunda solicitud:se muestra como:
Y dará como resultado lo mismo que el anterior. No es necesario incluir el extra
Escal final.fuente
Esto se debe a que las teclas especiales como
<Esc>no se traducen ennormalcomandos y se tratan como si las hubiera presionado <Esc>. Para remediar esto, puede usar unexeccomando. Al igual que:Tenga en cuenta que debe colocar una barra diagonal inversa antes de las comillas y el
<Esc>, y el uso de comillas simples en lugar de comillas dobles no funcionará.fuente
"\<C-{insert key}>"El modo de línea de comandos es diferente; no puede usar los mismos comandos de edición (modo normal) allí. Puede encontrar una lista de comandos en
:help c_CTRL-V.Ahora, está la ventana de línea de comandos (
:help command-line-window), que se puede ingresarq:desde el modo normal y<C-F>desde el modo de línea de comandos. En esa ventana, puede usar todos los comandos y asignaciones normales, por lo que sería la opción 1.La opción 2 es mapeos especiales para el modo de línea de comandos. Como dije, no puede usar el enfoque a través de
:normalet al. La clave para definirlos es la:help c_CTRL-\_easignación, que "evalúa [s] {expr} y reemplaza [s] toda la línea de comando con el resultado". Aquí hay un ejemplo simple que solo funciona correctamente al final de la línea de comandos:fuente