3

vim でのいくつかのコマンドの実行を自動化したいと考えています:repl。コマンドは次のとおりです。

:ConqueTerm lein repl
<Esc>
:set syntax=clojure
<i>

上記を実行するカスタム vim 関数 (コマンド) を定義するにはどうすればよいですか?

上記について:

4

2 に答える 2

2

関数を作成し、その関数にコマンドを入れるだけです。

fun! LeinCMD()
    execute 'ConqueTerm lein repl'
    execute 'set syntax=clojure'
    execute 'normal! i'
endf
command! Repl call LeinCMD()

上記のコードをソースとして入力:ReplEnter、それが機能するかどうかをテストすることができます。

編集

@Zyxによるとても素敵なコメント。読者が将来貴重な情報を見逃さないように、私はそれらに答えただけです。

  1. ここではまったく:execute電話する必要はありません。
  2. :normal!i は役に立ちません。関数から挿入モードを開始するには、:startinsert と :call feedkeys() があります。前者を優先する必要があります。// 注: :は によって実行される:normal! iため、ここでは「機能します」。つまり、Conque の書き方からすると、まったく必要ありませんが、まだ必要ない場合は、何の役にも立たないでしょう。startinsert:ConqueTerm:startinsert:normal! i

ちょうど言及しました: 使用する方がはるかに良いでしょう: この方法では、パイプ記号でコマンドをチェーンするcommand -bar必要はありません(の 2 番目の引数として -bar を使用して、または使用せずに試してください)。それがデフォルトのオプションだったと思いますが、Bram が多くの場所で悪いデフォルトを好む理由がわかりません。:executeRepl | echo "Here":command

于 2013-03-31T21:32:42.363 に答える
0

やってみました?

function custom_function ()
  execute 'ConqueTerm lein repl'
  execute 'set syntax=clojure'
  return custom_function
endfunction

テストしていないため、このコードが機能するかどうかはわかりません

于 2013-03-31T21:05:04.640 に答える