回答:
:call cursor(0, len(getline('.'))/2)
タイピングgm
はそれを行いますが、画面の行ごとに移動します(を参照:help gm
)。テキスト行で機能させるには、次のコマンドを再マッピングできます。
map gm :call cursor(0, virtcol('$')/2)<CR>
これは、ハードタブとマルチバイト文字を尊重するソリューションです。
:exe 'normal '.(virtcol('$')/2).'|'
これが私が見つけた最良の解決策です。行の真ん中にジャンプすることはあまり実用的ではありません。ほとんどの場合、中央に移動した後もカーソルをいくつかの位置に移動する必要があります。特定のキャラクターにジャンプできるとしたら?多くの人は単にキャラクターを検索し、次に到達するまで「次へ」を押します。これは遅いです。Easy-motionプラグインは、より優れたソリューションを提供します。
私のお気に入りは<leader><leader>s
、ジャンプしたいキャラクターです。Easy Motionは、すべての一致を別の文字に置き換えて、ユーザーが選択できるようにします。チュートリアルを参照してください。その人生を変えるプラグイン...