abbreviation を展開したとき、最後に入力した文字を挿入しないようにするハック
/* insert the last typed char */
のブロックをコメントアウトしただけ。
--- ../src.orig/getchar.c Thu May 4 02:29:21 2006 +++ getchar.c Sun Jul 23 05:43:17 2006 @@ -4276,31 +4276,31 @@ /* special key code, split up */ if (c != Ctrl_RSB) { - if (IS_SPECIAL(c) || c == K_SPECIAL) - { - tb[j++] = K_SPECIAL; - tb[j++] = K_SECOND(c); - tb[j++] = K_THIRD(c); - } - else - { - if (c < ABBR_OFF && (c < ' ' || c > '~')) - tb[j++] = Ctrl_V; /* special char needs CTRL-V */ + //if (IS_SPECIAL(c) || c == K_SPECIAL) + //{ + //tb[j++] = K_SPECIAL; + //tb[j++] = K_SECOND(c); + //tb[j++] = K_THIRD(c); + //} + //else + //{ + //if (c < ABBR_OFF && (c < ' ' || c > '~')) + //tb[j++] = Ctrl_V; /* special char needs CTRL-V */ #ifdef FEAT_MBYTE - if (has_mbyte) - { + //if (has_mbyte) + //{ /* if ABBR_OFF has been added, remove it here */ - if (c >= ABBR_OFF) - c -= ABBR_OFF; - j += (*mb_char2bytes)(c, tb + j); - } - else + //if (c >= ABBR_OFF) + //c -= ABBR_OFF; + //j += (*mb_char2bytes)(c, tb + j); + //} + //else #endif - tb[j++] = c; - } - tb[j] = NUL; + //tb[j++] = c; + //} + //tb[j] = NUL; /* insert the last typed char */ - (void)ins_typebuf(tb, 1, 0, TRUE, mp->m_silent); + //(void)ins_typebuf(tb, 1, 0, TRUE, mp->m_silent); } #ifdef FEAT_EVAL if (mp->m_expr)