2

いくつかの異なる機能を Vim の 1 つのキーにマップし、それらを順番に実行したいと考えています。

たとえば、2 つの異なる関数をキーにマップしたいと思います。1enterつは前の行の最後の文字が中かっこの場合に何かを行い、もう 1 つは前の行の最後の文字が~. しかし、私はこれらを2つの別々の機能に入れたいと思っています。

これは可能ですか?

keyPS また、 enter をマップする 1 つの関数内で、成功しなかった場合に他のマッピングを呼び出せるようにするソリューションにも進んで行きます。

4

1 に答える 1

4

(これはコメントのはずですが、長くなりすぎると思います)

したがって、一般的に、そのキーを関数の呼び出しにマップする必要があります。それを 2 つのものにマップすることはできないので、1 つの関数にマップし、その関数内で他の 2 つの関数を実行します。前の行の最後の文字はチルダです。

または、マップされた関数を使用して、前の行の最後の文字を確認し、その特定の文字に応じて、何かを実行する関数を実行することもできます。

ここでこれ以上続けることは本当にないので、このままにしておきます :-/


コメントの後に編集:まあ、ここでは詳細には入りませんが、プラグインは一般的に単なる関数です。Vim にはサブルーチンがなく、関数の「型」がいくつかあるだけです。プラグインは、いくつかのキーにマップされた関数にすぎません。

現在、私は SuperTab プラグインを使用していません (聞いたことがありますが、それだけです)。そしてそこから、その特定の機能は何をしますか。どんな引数を取るかなど...

そこから、前の文字をテストする 1 つのラッパー関数を作成する方法を見つけ、それに基づいてそのプラグイン関数を実行するか、何か他のことを行うプラグイン関数を実行するだけの問題です。

「一般的な方法」で何を言っているのかわかりません。

于 2012-05-18T02:24:55.113 に答える