2010-01-01 14 views
8

Los comandos de abreviación y mapa parecen dar al usuario funcionalidad redundante. :imap teh the parece hacer el mismo trabajo que :iabbr teh the. Tiendo a hacer todos mis ajustes en los comandos :map de varios tipos, todo, desde correcciones de errores a guiones de una línea.Cuándo utilizar: abbr vs.: map en vi/vim

¿Existe una diferencia real entre los mapas y las abreviaturas? ¿Qué comando es más adecuado para qué trabajo?

+0

ver también: http://stackoverflow.com/questions/3776117/what-is-the-difference-between-the-remap-noremap-nnoremap-and-vnoremap-mapping – dreftymac

Respuesta

10

La mayor diferencia en este caso específico es que iabbr solo cambiará el texto una vez que haya presionado espacio, y mostrará cada carácter en la pantalla mientras escribe. Por el contrario, imap retrasará la visualización de todos los caracteres en teh hasta que el mapa se haya resuelto de una manera u otra. Recomendaría iabbr en este caso: verá aparecer caracteres mientras escribe, las palabras que comienzan con la abreviatura se manejarán correctamente y (lo más importante) no obtendrá un retraso irritante para todas las palabras que comiencen con t .

+1

espacio no es la única clave que desencadena la expansión. Cualquier carácter que no sea de palabras clave tiene el mismo efecto. –

+1

Ya veo. Uso el ': imap jj ' y ahora estoy notando el retraso cuando comienzo cualquier palabra con 'j'. ¿Es realmente solo una cosa visual? ver el macro en progreso vs. ¿no verlo? – user17925