特定のリマップにタイムアウトを設定しない方法を教えてください。


7

この問題は、再マッピングされた巨大な構成を使用する問題から発生するため、少なくとも1つのキーを押すコマンドでは、bépoレイアウトは通常モードのqwertyと実質的に同じです。

ビジュアル選択モードを使用してテキストを選択し、iとして構成されているを押すとnoremap i d、テキストはすぐに削除されることが予想されます。ただし、すぐにトリガーされるのではなく、2番目のキーの可能性を待機しています。

timeoutlenゼロに設定すると、このコンテキストで期待される結果が得られますが、このようなコマンドは、動作しない,,ように構成されてnoremap ,, ggいます。

それで、1つのコマンドに固有のタイムアウトを設定したり、アクティブな選択を使用したビジュアル選択モードのような特定のコンテキストでタイムアウトを設定したりできますか?

おそらくtimeoutlenゼロになっているとnoremap ,, gg、役に立たなくなるかもしれません。そのため、このマッピングを削除するだけで、期待した結果が得られる可能性があります。


500などの適切な値に設定してみませんか。モードの場合、AFAICTは、挿入モード関連のイベントに対してのみautocmdイベントがあるため、それができない可能性があります(CursorMovedモードの変更を使用および監視しない限り、それはエラーが発生しやすく、オーバーヘッドが多すぎます)。
muru

1
私は別のキーボードレイアウトを使用したことがありませんが、これを以前に見たことがあるので、次のように説明します。Dvorakに関するこの記事(vim.wikia.com/wiki/Using_Vim_with_the_Dvorak_keyboard_layout)から、langmapコマンド(<cv>のようなマルチボタンコマンドを除く)で問題なく動作するはずだと思います。これがあなたがすでにしたことなら、申し訳ありません。私が言ったように、それを必要とすることは決してありませんでしたが、それがあなたを助けるかもしれないことを願っています。
Doktor OSwaldo 2017年

回答:


3

あなたは何かを持っているように聞こえます

noremap i d
noremap ix ... other mappings starting with i

そして、あなたはiタイムアウトが0であることを求めています。

その場合、ixマッピングを入力することはできません-なぜそれらを削除してこのように問題を解決しないのですか?

これがビジュアルモードのみの場合はi、そのモードで始まるマッピングを定義しないでください。

コメントで言及したマッピングを削除することができます

xunmap iM
xunmap im

実際、問題はビジュアル選択モードに関係しています。エラーのため申し訳ありません。提案をありがとうございます。
psychoslave 2017

@psychoslaveでは:map i、どのマッピングがどのモードに定義されているかを確認できます。
laktak

x iM *@:<C-U>call <SNR>30_wrap_i('[[','][')<CR> o iM *@:<C-U>call <SNR>30_wrap_i('[[','][')<CR> x im *@:<C-U>call <SNR>30_wrap_i('[m',']M')<CR> o im *@:<C-U>call <SNR>30_wrap_i('[m',']M')<CR> i * d
psychoslave 2017年

1
このように読みにくいので、質問を更新してください。xはビジュアルモードを表します。したがって、iMおよびimマッピングを削除する必要があります。
laktak 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.