これはvimメーリングリストのZyX's postから取ったものです。
noremap <expr> n 'Nn'[v:searchforward]
noremap <expr> N 'nN'[v:searchforward]
それは二つの要素のリストとしてインデキシング'Nn'
によって可変v:searchforward
のオフに基づいて元のNまたはNにn
をマッピングします。これは、マッピングが非再帰的であるためにのみ機能します。それが再帰的であれば、これは自己を呼び出すでしょうし、あなたは無限ループになります。
ときv:searchforward == 1
(前方検索)マッピングが
noremap <expr> n n
noremap <expr> N N
とv:searchfoward == 0
に相当します(後方検索)マッピングが
noremap <expr> n N
noremap <expr> N n
に相当します。このマッピングは、Visual、ノーマルで動作し、オペレータ保留モード。
これはおそらくこのように書かれています。 (これは明確ではありませんが)
noremap <expr> n (v:searchforward ? 'n' : 'N')
noremap <expr> N (v:searchforward ? 'N' : 'n')
これは独創的なマッピングです – dorserg
ところで、このスレッドがポップアウトされたので、私はあなたのために新しいソリューションを持っていますが、最初に私は望んでいました /パターン と繰り返すことができます「nnnn」というクレームがあります。 – ZyX