2

私は次のマッピングを持つプラグインを持っています:

:i <CR>          <CR><Plug>DiscretionaryEnd

<CR>このオリジナルのマッピングに当てはまる独自の表現も作成したいと思います。しかし、私がこのようなことをするとき:

:inoremap <expr> <CR> test ? '<CR><Plug>DiscretionaryEnd' : '<Esc>'

CRプラグインの関数への委任が続くの\n<Plug>DiscretionaryEndではなく、出力します。\nDiscretionaryEnd

:h <Plug>内部マッピングに使用されていると言っているので、おそらくこれは間違っています。しかし、プラグインの内部に飛び込むことなく、プラグインの動作をラップする方法があると思います。これはどのようにすればよいですか?

4

1 に答える 1

2

通常は を使用する:noremapことをお勧めしますが、マッピングが再マッピングや再帰の影響を受けなくなるため、これは例外です。

式マッピングでは、返された文字ストリームではなく、式自体にマッピングが適用されます。

:imap <expr> <CR> test ? '<CR><Plug>DiscretionaryEnd' : '<Esc>'
于 2013-03-13T15:12:30.620 に答える