Una solución rápida que me gustaría usar en este caso es insertar algunas pulsaciones de teclas a la abreviatura:
iabbrev <? <?=?><Left><Left>
colocaría el cursor dos lugares a la izquierda, después de la =
.
De esta manera, puede usar varias teclas de movimiento tales como <End>
, <Home>
, o incluso volver al modo normal con <Esc>
y mandar comandos usuales en modo normal. El ejemplo sería entonces
iabbrev <? <?=?><Esc>hha
y hace lo mismo que en el primer ejemplo. Si expandes una abreviatura con espacio, tendrá un espacio extra.
del que puede deshacerse usando un
<BS>
(retroceso) en la abreviatura.
O expanda con <C-]>
que no dejará espacio.
Corrección: ya que la abreviatura se expandió primero, y después de que el espacio insertado, se necesita una pequeña función que se encuentra en la ayuda (MAP.TXT):
func Eatchar(pat)
let c = nr2char(getchar(0))
return (c =~ a:pat) ? '' : c
endfunc
Esto es mejor poner en .vimrc
. Ahora la siguiente abreviatura va a funcionar plenamente como intented:
:iabbrev <silent> <? <?=?><Left><Left><C-R>=Eatchar('\s')<CR>
Es un poco desordenado, pero tiene una llamada a la función externa que elimina el espacio en blanco y debería funcionar bien.
me trataron iabbrev =?> HHA pero elimina carácter "=" :) donde debo colocar ? Es exactamente lo que quiero, excepto este problema . –
ivan73
Realmente lo siento por no probar la funcionalidad '' antes de responder. Edité en una solución adecuada. –
progo
fresco, funciona, aceptando esta respuesta :) lo estoy usando como esto: ' iabbrev =$?> HHA = Eatchar ('\ s') ' –
ivan73