"di{"などのチェーンコマンドでは、{および}マッピングは機能しません。

"di{"などのチェーンコマンドでは、{および}マッピングは機能しません。

以下をマッピングし、すべてのvimモードをカバーするために、マッピングの1つまたは両方を有効にしてみました。

map! ĸ {
map ĸ {

di{マッピングは挿入モードと通常モードで期待どおりに機能しますが、中括弧ペア内のすべての内容を削除するなどのコマンドを実行しようとすると{}何も起こりません。再帰マッピングは{他のコマンドに対して機能し、ino {それを使用すると失敗するため、有効にする必要があります。

linkコマンドでなぜ動作しないのか理解できません。

答え1

問題は、これがi{完全な演算子保留コマンド(またはテキストオブジェクト)であり、マッピングが実際に既存のコマンドまたはマッピングの後続の部分には適用されないことです。オペレーターの停止とビジュアルモードi{(およびその友人)の両方をサポートするには、a{これを明示的に実行するための追加のマッピングセットが必要です。

omap iĸ i{
omap aĸ a{
xmap iĸ i{
xmap aĸ a{

しかし、このキーマッピングを実行するより良い方法は、次のようにすることです。'langmap'通常モードでキーを再マップする機能。特定のユースケースの場合'langremap'

set langmap=ĸ{
set langremap

これは、通常モード、視覚モード、オペレータ一時停止モード、およびシンボルに関連するマッピングを処理します{

挿入モードやコマンドラインモードは処理されません。この目的のために:map!(通常はうまく機能する)aを使い続けるか、'keymap'挿入モードのオプションは同じです'langmap'が、'keymap'はるかに複雑です(固有の構文を使用して別々のマッピングファイルを生成することが含まれ、マッピングが有効になる場所を正確に制御するためのいくつかの追加オプションがあります)。

関連情報