私は次のものを持っています:
map <F6> :SCCompile<cr>
map! <F6> <c-r>=SingleCompile#Compile()<cr>
:SCCompile
2番目のマッピングでも使用したいのですが、それは可能ですか?
現在、関数呼び出しでラップしたくない別のコマンドがあります。挿入モードで使用する<c-r>=
のは、元に戻すポイントが作成されず、この制限を除いてうまく機能するためです。
実行しようとしましたが、機能しません。
あなたはこのようなことをすることができます:
map <F6> :SCCompile<cr>
map! <F6> <c-r>=feedkeys("<c-o>:SCCompile\<lt>cr>")?'':''<cr>
コマンドは最も単純ではありません:
<c-r>=
<lt>
拡張を許可するために使用します<cr>
<c-r>=
?:
によって返された値を無視するには、演算子を使用しますfeedkeys()
を参照してください:help feedkeys()
。
最近の同様の質問からの私の答えに基づいて構築することができます。これはまったく同じ問題です。のよう:call
に、カスタムVimコマンドは何も返しませんが<C-R>
、何かを返す式が必要です。
function! SingleCompileWrapper()
SCCompile
return ''
endfunction
map! <F6> <C-R>=SingleCompileWrapper()<CR>