パラメータ化されたキーバインディングの作成

パラメータ化されたキーバインディングの作成

+Ngtsumからsum-Ngtまでマップをプロットしたいと思います。次のキーバインディングを作成できます。:tabnext N:tabprev N

nnoremap <buffer> <silent> +1gt :tabnext 1
nnoremap <buffer> <silent> +2gt :tabnext 2
nnoremap <buffer> <silent> +3gt :tabnext 3
nnoremap <buffer> <silent> +4gt :tabnext 4
nnoremap <buffer> <silent> +5gt :tabnext 5
nnoremap <buffer> <silent> +6gt :tabnext 6
...

しかし、私はより良いことができますか? (単に入力するよりもはるかに遅いので、「6タブの前に」移動したいわけではありませんが、Ngt後で参考にするためにこの質問をするのは自然なようです。)

良い例は、NGlineコマンドでジャンプすることですN。 Vimが内部的に移動したい各行に別々のキーバインディングを追加するかどうか疑問です。

ベストアンサー1

はい、より良いことができます。

nnoremap <silent> gt @=":tabnext\n"<CR>

その後、6gt6つのタブなどに進みます。式レジスタを使用することは、=数値プレフィックスでマップを繰り返すことを可能にするコツです。

注:Vim関連の質問を自分の質問に投稿すると、より良い結果が得られます。。 :)

おすすめ記事