2

特定の条件下でテキストを自動的に挿入する関数を作成しています。Enter キーを押してエミュレートしようとすると、ある部分でスタックしました。私はこの(明らかな)コードを思いつきました:

execute "normal! a\<cr>"

問題は、自動インデントを壊すことです。たとえば、次のようなテキスト ファイルがあります (| はカーソルです)。

if (condition) {
    action();|

だから私は走りexecute "normal! a\<cr>"ます。これが必要なとき:

if (condition) {
    action();
    |

次のように動作します。

if (condition) {
    action();
|

もちろん、自動インデントはオンです。私は何を間違っていますか?

4

1 に答える 1

5

実際、期待どおりに機能しています。実行:execute "normal! a\<cr>helloすると、「hello」が適切な場所に配置されます。押すAEnterEscと行頭にドロップします。コマンドは挿入モードを終了し、空白行であるため、インデントを解除します。

于 2012-10-03T00:22:26.823 に答える