2008-09-22 20 views
57

Me encanta vim y la velocidad que me da. Pero a veces, mis dedos son demasiado rápidos y me encuentro escribiendo :WQ en lugar de :wq. (En un teclado alemán, debe presionar Shift para obtener los puntos :). Vim se quejará entonces de que WQ es Not an editor command.¿Puedo (re) mapear comandos Ex en vim?

¿Hay alguna manera de hacer W y Q comandos de edición?

+4

Utiliza shift para obtener dos puntos en un QWERTY americano estándar también. –

+1

¿No debería ser eso en Superusuario? – Boldewyn

+2

también puede mapear; (o lo que sea que esté en la tecla:) a: y viceversa, por lo que no necesita usar shift para obtener:. – mb14

Respuesta

67

Trate

:command WQ wq 
:command Wq wq 
:command W w 
:command Q q 

De esta manera usted puede definir sus propios comandos. Consulte :help command para obtener más información.

+4

no olvides agregar lo anterior a tu vimrc para que no tengas que hacerlo todo el tiempo. – rampion

+7

Tenga en cuenta que en .vimrc, debe omitir los dos puntos iniciales. Debería leer, por ejemplo: 'comando Wq wq' – Luc

+0

Esta solución está limitada a los nombres de comando que comienzan con letras mayúsculas. Se puede encontrar una solución mucho mejor [aquí] (http://stackoverflow.com/a/3879737/1519199). – Jthorpe

12

Y puede utilizar

:cmap WQ wq 

también. P. ej. Tengo

cmap h tab help 

en mi .vimrc que significa la apertura de páginas de ayuda en una nueva pestaña.

Thanks for the tip Jim Stewart:

Pero aquí es una solución mucho mejor que el anterior (para la asignación de ayuda, de modo que sólo se aplica al realizar: h):

cnoreabbrev <expr> h getcmdtype() == ":" && getcmdline() == "h" ? "tab h" : "h" 
+0

Tu 'cmap h tab help' no me funciona –

+1

¿En qué versión if (G) Vim? ¿Qué ocurre cuando escribe ': pestaña de cmap h ayuda : h '? –

+6

-1: toca demasiado. Por ejemplo, ': echo 3' producirá': ectab helpo 3'. ': e sh.py' se convierte en': e stab help.py'. Etcétera. –

30

Manera alternativa de hacerlo:

Use 'command abbreviations'

:ca WQ wq 
+5

"Comando * abreviaturas *", no "alias de comandos". –

+2

Una forma útil recordar que: La palabra clave completa es 'cabbrev'. :) –

+1

1 permite que este también para los alias que comienzan con una letra minúscula (en contraste con ': command'). –

Cuestiones relacionadas