0

cscope から、次の nmap を取得しました。

nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>

そして、私はもともとこれらのマップを持っていました:

nmap <tab> v>
nmap <s-tab> v<
vmap <tab> >gv
vmap <s-tab> <gv

ここで s と入力すると、定義にジャンプし、副作用が 1 つあります。ターゲット行またはターゲット関数/クラスのコンテンツにタブが付けられます。

この競合がどこにあるのかわかりません。この 2 つのマップには関係がないようです。

4

1 に答える 1

1

私はあなたのマッピングを問題なく試してみました。そのため、@glts が彼のコメントで提案したような、ある種のチャーターの問題が発生している可能性があると思います。:set list非表示の文字を表示するために使用します。

ただし、次の点を考慮してください。

  • プラグインにマッピングする場合や非常に特別な必要がある場合を除き、ほとんどの場合、再帰的なマッピングを防ぐためにnnoremapoverを使用する必要があります。nmap
  • インデント/インデントを解除する vim の方法は、>>/ <<(または>/<ビジュアル モード) を使用することです。コマンドを繰り返したい場合は、 を使用します.。ドット コマンドは、最後の変更をやり直します。u遠くまで行った場合は、元に戻すことができます。このようなマッピングが必要であることは理解していますが、学習して使用する習慣を身につけること.は、vim nirvana への旅に役立ちます。
  • .迅速で汚い置換を示すこと による、コマンドの優れた使用例。
    • ファイル内の一般的なパターンを検索します/pat
    • を介してテキストを別のものに変更しますc。例えばcgnfoo<esc>
    • gnモーションは現在のパターンを選択します
    • コマンドで繰り返し.ます。

詳細については、次を参照してください。

:h mapping
:h .
:h u
:h >>
于 2013-09-26T16:35:24.063 に答える