For the purpose of this question, imagine that I have set
iab phil philosopher
In vim, as far as I know, the default display pattern when typing out the characters "phil" at the start of the word is to sequentially display each character in the same column until either: 1) I type a character that is not part of the potential abbreviation, 2) I pause long enough the abbreviation will not trigger, or 3) I hit the "end" character and the abbreviation triggers. I find this behavior annoying, especially since I otherwise love abbreviations in vim.
Is there any way to set abbreviations in vim to type, as normal, and then only change text if triggered, rather than holding the character in place until a character is typed that determines if you are using an abbreviation or not? I would be fine with it if the change also affected macros.
Edit: It seems the behavior I am observing is a function of imap/inoremap not iab. I have changed the question to reflect this discrepancy, but leaving the original text in place for context so other *ahem
* challenged people will be able to find the appropriate questions.
imap
instead ofiab
.:help abbreviations
and:help key-mapping
. Also:help 24.7
and:help 40.1
for a more general explanation of the two concepts.inoreabbrev
instead ofimap
. If you cannot use a simple iabbrev for a particular abbreviation, then there are ways around the redraw issue.