2013-01-13 11 views
5

、あなたはそれぞれ、上下にスクロールし、するCTRL +電子CTRL +Yを押すことができます。私はキーバインドを作成しようとしているので、これを挿入モードからも実行できます。これは私が持っているものです:挿入モードを離れることなく上/下にスクロールするにはどうすればよいですか? Vimの通常モードで

" Scroll up and down while in insert mode. 
inoremap <C-e> <C-o><C-e> 
inoremap <C-y> <C-o><C-y> 

これは期待どおり動作しますが、大きな欠陥があります。 は、挿入モードを去り、スクロールして、挿入モードに再び入ります。これは、アンドゥ、リピートコマンドなどに関連しており、挿入モードを離さずに上下にスクロールできるようにしたいと考えています。思考?

+0

何のVimのモデルに慣れるについて代わりにインタラクション? – romainl

+0

@romainl:もちろん、挿入モード中にビューに特定の行を表示するために、ビューポートに2行を振ることができないようにすべき理由はありません。 – Hubro

+0

誰にでも2番目の答えを投稿しました。なぜそれを削除しましたか? :(それは非常に有益でした – Hubro

答えて

9

あなたはスクロールする内蔵型にインサートモードマッピングである、:h i_CTRL-X_CTRL-Eを見て取ることができる:

    *i_CTRL-X_CTRL-E* 
CTRL-X CTRL-E  scroll window one line up. 
     When doing completion look here: |complete_CTRL-E| 

        *i_CTRL-X_CTRL-Y* 
CTRL-X CTRL-Y  scroll window one line down. 
     When doing completion look here: |complete_CTRL-Y| 

だからあなたの場合には、これはおそらく、トリックを行うだろう:

inoremap <C-e> <C-x><C-e> 
inoremap <C-y> <C-x><C-y> 
+0

+1これは非常にクールで、私の問題を解決しますが、質問にはあまり答えません。もしあなたが知っていれば、Vimにスクロールするための組み込み関数があるかどうかを追加できますか? – Hubro

+0

まあ、マウスのスクロール、スクロールバーのドラッグ、またはPageUpとPageDownを使用して挿入モードでスクロールすることもできますが、それらはすべてカーソルを移動します。いずれにしても、ノーマルモードでスクロールするのはおそらくVim-esqueでしょう。 –

+1

ウィンドウをスクロールするための組み込み関数がないように見えるので、ニーモニックのスクリプティング/エイリアシングはできるだけ近くにあります。保存されたセッションやビューでさえ、正確なウィンドウのスクロール位置を覚えていません。私はvimscript関数(http://vimdoc.sourceforge.net/htmldoc/eval.html#functions)とオプション(http://vimdoc.sourceforge.net/htmldoc/options.html)を組み合わせて、この結論に達しました。 )参照。 – Daniel

2

ino <C-E> <Space><BS><ESC><C-E>:undojoin<CR>gi 

<Space><BS> S:それのアンドゥ一部を修正undojoin

equenceは、参加する元に戻すブロックがあることを確認します。

驚くべきことに(私には)これは.破損を支援しませんので、あなたが今にしている、これは同じように迷惑な場所にあなたを残しかもしれません...

関連する問題