Imagina que quieres citar la palabra a continuación. Si |
es la posición del cursor, puede citar fácilmente la palabra cw""<Esc>P
desde 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>P
y algunas otras variaciones, pero acabo de obtener en ""<Esc>P
lugar 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 enEsc
lugar 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
Esc
al final.fuente
Esto se debe a que las teclas especiales como
<Esc>
no se traducen ennormal
comandos y se tratan como si las hubiera presionado <Esc>. Para remediar esto, puede usar unexec
comando. 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
:normal
et al. La clave para definirlos es la:help c_CTRL-\_e
asignació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