0

原因となるvimrcにコードを追加する

"E488: Trailing characters: <c-r>=12+34<cr>" 

いつも現れる

<c-r>=12+34<cr>

そこで何が起こっているのですか?

私の元のコード:

function! CleverTab()
    if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
        return "\<Tab>"
    endif
    if pumvisible()
        return "\<C-N>"
    endif
    let s:codecompl = CodeComplete()
    "<c-r>=s:codecompl<cr>
    <c-r>=12+34<cr>
    "exec " " .s:codecompl. "\<enter>"."."
    "if g:swith_region_flag == 1
    "    return SwitchRegion()
    "else return s:codecompl
    return ''
endfunction
4

1 に答える 1

1

<C-R>挿入モードのコマンドです。Ex コマンドを実行する Vimscript 関数に単純に入れることはできません。代わりに:normal! i、通常モードのコマンドを発行してi挿入モードに再度入る必要があります。を使用:executeしてキー表記を使用できるようにすると、次の<...>ようになります。

:execute "normal! i\<c-r>=12+34\<cr>"

とはいえ、キーを返すマップ式にいる場合 (ここにいるように見えます)、使用できません:normal(テキストはロックされています)。:returnキーだけを使用する必要があります。

:return "\<c-r>=12+34\<cr>"
于 2013-02-21T11:16:00.010 に答える