2009-11-24 15 views
6

En vim, cuando toco :wq casi siempre es un accidente que ocurre cuando intento ingresar :w. Me gustaría deshabilitar :wq.Cómo deshabilitar un comando incorporado en vim

Lo más parecido que encontré es cmap, pero tiene un comportamiento extraño. Si hago algo así como

:cmap wq w 

ya no puedo ni siquiera de entrada :wq; simplemente reasigna la secuencia de teclas wq a w en modo de comando. Ahora no puedo, por ejemplo, ingresar un comando de búsqueda/reemplazo en una cadena que contiene wq.

Me gustaría alias el comando exacto :wq a :w o no-operativa. ¿Hay alguna forma de hacer esto?

EDIT: aclarado qué :cmap no es una opción para mí

Respuesta

0

Parece que la mejor opción es simplemente acostumbrarse a :cmap comportamiento. En el caso raro de que quiera ingresar al teclado, seqeunce wq, puedo presionar wq, esperar un segundo, y presionar q nuevamente. Encontré this possible solution pero es demasiado complejo para mi gusto.

2

Una mejor solución puede ser:

:cabbrev wq w 

Pero no estoy seguro de por qué cmap no funciona como exceptuado. En realidad me había asignado uno de mis teclas de función para guardar archivos:

:map <F2> :w<CR> 
:nmap <F2> <ESC>:w<CR>i 

ACTUALIZACIÓN: errata corregida en el primer comando.

Update2: posible solución:

:cabbrev wq<CR> w 

HTH

+0

¿Puede explicarme por favor: cabbrew? –

+2

Creo que debería ser ': cabbrev'. ': cabbrev wq w' cambiará wq a w después de presionar el espacio o ingresar, por lo que hará': wq' do ': w'. Ver ': help: cabbrev' y': help: ab' para más información. – DrAl

+0

Lo siento, creo que no fui lo suficientemente claro en mi pregunta. Si lo hace: cmap y también parece: cabbrew, significa que la secuencia de teclas "wq" en el modo de comando está asignada a algo que no sea "wq". Entonces, no puede, por ejemplo, hacer una búsqueda/reemplazo en una cadena que contenga "wq". Todo lo que me gustaría hacer es hacerlo así si ingreso el comando exacto: wq, tiene un alias de "w" o no-op. – user85509

Cuestiones relacionadas