6

私は Vim を初めて使用し、いくつかのプラグインをセットアップしようとしています。これまでのところ、病原体、pyflakes、およびスーパータブをインストールしました。後者は機能していないようです。挿入モードでを押すtabと、単純に文字列が書き込まれます<Plug>SuperTabForward

この問題は、vimrc の次の行でのみ発生します (colemak レイアウトを使用したナビゲーションを改善するため):

set langmap=hjklneiHJKLNEI;kniejhlKNIEJHL

上記の行がなくても問題なく動作します。さらなる実験の後、私はそれをに絞り込みましたset langmap=e;h。この 1 行でスーパータブが壊れます。

私は Vim にまったく慣れていないので、何が起こっているのか、どうすれば修正できるのか、まったくわかりません。回避策でさえ興味深いでしょう。

4

2 に答える 2

2

回避策を見つけました: を編集し、 のインスタンスをsupertab.vimに置き換えます。これにより、文字列が のようになります。<Plug>SuperTab<P>P<Plug>SuperTabForward<P>PForward

これらの文字列にはset langmap=hjklneiHJKLNEI;kniejhlKNIEJHL. いくつかの問題はまだ解決されていません。言語マップにバグがありますか? 私には、コマンドのみに影響するマッピングを許可するオプションが明示的に存在するようです:

When you are typing text in Insert mode the characters are
inserted directly.  When in command mode the 'langmap' option takes
care of translating these special characters to the original meaning
of the key.  This means you don't have to change the keyboard mode to
be able to execute Normal mode commands.

imapしたがって、文字列にlangmap マップされた文字が存在すること、つまり挿入モード mappingが違いを生むことは、私にはまったく意味がありません。その場合、長い文字列を使用する SuperTab などのプラグインがランダムに壊れimapます。これがいかに奇妙であるかを説明するために、私がそうする場合、それをトリガーするにはimap no yes書き込みjoが必要です。その背後にあるロジックがどのように機能するかはわかりません。

于 2012-01-17T16:11:46.950 に答える
0

私は同じ問題を抱えていましたが、この回避策は私の場合には当てはまりませんでした。

Vim langmap ブレーク プラグイン (ベポ)

https://groups.google.com/forum/#!msg/vim_dev/QnNwLWhJ744/1qNcD7d9OvgJ (最後のメッセージを参照)

このパッチでは、新しい設定が導入されています。これを設定すると、そのようなマッピングへの影響がlangnoremap防止されます。langmap

もう少しテストが必要で、すぐには vim に含まれないかもしれませんが、うまく機能しているようです!

于 2014-10-21T13:10:31.490 に答える