0

私は次のものを持っています:

map  <F6> :SCCompile<cr>
map! <F6> <c-r>=SingleCompile#Compile()<cr>

:SCCompile2番目のマッピングでも使用したいのですが、それは可能ですか?

現在、関数呼び出しでラップしたくない別のコマンドがあります。挿入モードで使用する<c-r>=のは、元に戻すポイントが作成されず、この制限を除いてうまく機能するためです。

実行しようとしましたが、機能しません。

4

2 に答える 2

1

あなたはこのようなことをすることができます:

map  <F6> :SCCompile<cr>
map! <F6> <c-r>=feedkeys("<c-o>:SCCompile\<lt>cr>")?'':''<cr>

コマンドは最も単純ではありません:

  • ここでは、Vimに離れた後にいくつかのキーを実行するように依頼します<c-r>=
  • の代わりにコマンドラインモードでの<lt>拡張を許可するために使用します<cr><c-r>=
  • 関数?:によって返された値を無視するには、演算子を使用しますfeedkeys()

を参照してください:help feedkeys()

于 2012-08-24T05:59:46.757 に答える
0

最近の同様の質問からの私の答えに基づいて構築することができます。これはまったく同じ問題です。のよう:callに、カスタムVimコマンドは何も返しませんが<C-R>、何かを返す式が必要です。

function! SingleCompileWrapper()
    SCCompile
    return ''
endfunction

map! <F6> <C-R>=SingleCompileWrapper()<CR>
于 2012-08-24T07:28:18.077 に答える