私は最近発見した Ctrl+E そして Ctrl+Y Vimのショートカットはそれぞれ1行ステップで画面を上下に移動するカーソルを動かさずに。
カーソルのある場所にカーソルを置いたまま、カーソルのある行が最初の行になるように画面を移動するコマンドを知っていますか。 (最後の行にコマンドを入力すると、いいボーナスになります)。
手動で押すことでこれを達成できます Ctrl+E (または Ctrl+Y)適切な回数ですが、どういうわけか直接これを実行するコマンドを持つのはいいでしょう。
何か案は?
vim
!を保存して終了します。さらに:
Ctrl - y そして Ctrl - e 画面外に移動する場合にのみカーソル位置を変更してください。
Vimは常に現在の画面にカーソルがあることを要求するが、現在の位置をブックマークしてスクロールしてから元の位置に戻ることができる。
mg # This book marks the current position as g (this can be any letter)
<scroll around>
`g # return to g
使用時にカーソルを同じ列に残すには Ctrl+D、 Ctrl+F、 Ctrl+B、 Ctrl+U、 G、 H、 M、 L、 gg
次のオプションを定義してください。
:set nostartofline
これがvimrcでの私の解決策です:
"keep cursor in the middle all the time :)
nnoremap k kzz
nnoremap j jzz
nnoremap p pzz
nnoremap P Pzz
nnoremap G Gzz
nnoremap x xzz
inoremap <ESC> <ESC>zz
nnoremap <ENTER> <ENTER>zz
inoremap <ENTER> <ENTER><ESC>zzi
nnoremap o o<ESC>zza
nnoremap O O<ESC>zza
nnoremap a a<ESC>zza
カーソルが画面の中央に留まり、画面が上下に移動するようにします。
カーソル移動コマンドの前に数字を付けると、そのコマンドを何度も繰り返すことになります。
1Ctrl+E しましょう Ctrl+E 1回ではなく10回。
この質問に対する回答が役に立つかもしれません: カーソルに対するスクロールVim、カスタムマッピング :その質問からScrollToPercent(0)
を使うことができます。
zEnter この質問が求めるものを正確に行います。
奇妙なところで動作します zz 動作しないでしょう(特別な.vimrcなしでUbuntu 2016.04 LTSのvim 7.4.1689)
KキーとJキーでテキストをスクロールすると便利なことがあります。それで私は私の.vimrc(これもzsに束縛されています)にこの "スクロールモード"機能があります。
誰もカーソルをページの中央に保持する Scrolloffオプション を使用していないことに驚いた。で試してください:
:set so=999
これは、vim wikiで最初に推奨される方法であり、うまく機能します
私が書いた新しいプラグインがあります、それはあなたがカーソル位置を動かさずに穴ファイルをナビゲートすることを可能にします。それはあなたの位置とあなたの目標位置の間の線を折り、それから折り目を飛び越えることに基づいています。または中止してまったく動かないでください。
カーソルを最初の行、最後の行、カーソルを中央、j、k、lのいずれかをクリックするだけで素早く切り替えることができます(プラグインのモードに入っているとき)。
私はそれがここにぴったりだと思います: https://github.com/anschnapp/move-less