Mac Terminal / iTermでのvimのスムーズなスクロール?


13

Mac OSX(Lion)の端末内で(マウススクロールホイールまたはMacbookタッチパッドを使用して)スムーズにスクロールすることは可能ですか?さらに、vim内でこれを実行できますか?

スムーズなスクロールはコードの読み取りに役立ちます。連続したピクセル単位のスクロールではなく、個別の行でしかスクロールできない場合は気に入らないでしょう。

ありがとう


あなたはターミナルセッション(以内にそれを使用するのではなく、Vimのアプリケーションを使用する場合には、優れた経験を持っているかもしれcode.google.com/p/macvimmacvim.org/OSX)。端末内で使用する必要がある理由はありますか?
クリスページ

3
MacVimはスムーズなスクロールも提供しません。
ロメインル

こんにちは@romainl。バッファサイズ(ウィンドウサイズ)が本当に大きい場合(つまり、ファイル全体のサイズ)、vimはどのように動作するのでしょうか。これをテストする必要があります。次に、スムーズなスクロールGTK(またはQT)ウィジェット内にvimバッファーを配置し、ウィジェット内のvimバッファー全体をスムーズにスクロールします。これには、最新のエディターのようにカーソルを簡単に隠すことができるという追加の利点があります。ユーザーがカーソルを移動すると、ウィジェットは(gVimが使用するのと同じAPIを使用して)認識し、それに応じてスクロール位置を再センタリングします。
trusktr

(続き)vimのフルファイル長の出力を新しいウィジェットに複製し、ウィジェットを適切な位置までスムーズにスクロールすることで、ウィンドウの分割を行うことさえできます。これには、いくつかの簡単な計算と、優れたウィジェットツールキットの十分な知識が必要です。ウィンドウの分割(水平および垂直)と、ウィジェットのスクロールとサイズ変更が行われます。残りはやるべきことです(メニュー、タブ、gVimとqVimがすでに行っていること)。
trusktr

(続き)これにはvimのパフォーマンスも大幅に改善する可能性があります。これについて考えてください:コンソールvimまたはg / qvimウィンドウをスクロールするたびに(現在)、vimは画面上のほとんどすべての文字を書き換える必要があります。vimバッファーが完全な長さで、スクロールがスムーズスクロールウィジェットによって個別に処理された場合、vimはカーソルを新しい行(またはもっと良いのは1行)に移動するたびに一度に1行分の文字だけを更新するだけ1文字前または後ろに移動するときの文字)。これはvimにとって大きなパフォーマンス上の利点になります!
trusktr

回答:


5

私はiterm2を使用しています。vim7.3を使用して、次のオプションを備えたターミナルで非常に優れた機能を見つけています。

set mouse=niv #or set mouse=a
set clipboard=unnamed

編集:set mouse = aも、他の提案で示されているように、使用するのがクールだと思われます。

これにより、テキストの選択中に通常モードから視覚モード、または挿入モードから-(挿入)VISUAL-と表示されるモードに自動的に切り替わります。これには、これらのモードをまったく設定しないよりも便利な利点があります。行番号または相対行番号を取得したときに、コピーしたくない番号をコピーします。この方法でマウスが有効な視覚モードにドロップすると、それらの行番号のコピーが回避されます。これは、ネイティブ端末の選択(抑制される)ではなく、視覚モードの選択を制御するために機能します。スクロールは、選択を開始した場所から画面の下部までのすべてを選択することに留意して、全体を通してうまく機能します。vimでctrl + c / ctrl + vを忘れる-vim yankypastaコマンド(y、yy、p、

http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing#Comments

繰り返しますが、iterm2-osxのビルトインターミナルはゴミです。私はこれが単純にvimのように機能することに満足しているので、私は本当にあなたの牛肉を行ごとにスクロールして見ていません乗り物酔い、またはなぜ蛍光灯とCRTモニターがちらつきを起こし、片頭痛の点まで人々の頭を混乱させます。脳のリフレッシュレートを調整してみてください。こめかみを強く押して回すと、ノブを感じることができます。


0

私は本当にあなたに同意しませんが、ここにあなたが望むことなどを行うTerminal.appプラグインがあります。

追加する必要があるかもしれません

set mouse=a

.vimrcに。詳細については:help mouse、を参照してください。


残念ながら、プラグインにはSIMBLが必要です。SIMBLはLionでは利用できません
Eddy

私はライオンを持っていないので、知りませんでした。MouseTermは、これまで聞いたことのあるTerminal.appにマウススクロールを追加する唯一の方法です。LionでSIMBLを使用することに限られた成功を報告している人がいるようですが、試してみましたか?また、iTerm2は「マウスレポート」とスクロールを提供しますが、おそらく1行ずつスクロールします。サイドノートとして、私はほとんどスクロール(アップ/ダウン/ J / K)もう:私は見つける/?fFtTおよび<C-f>/ <C-b>多くの便利。
ロメインル

これらはマウスホイールスクロールを機能させることに注意してください。ただし、「ピクセルごとの連続スクロールとは異なり、個別の行でしかスクロールできない場合は気に入らない」という主要な問題に対処しません。
クリスページ

このタイプのスクロール(行ごと)はVimでハードコーディングされています。ありがたいことに、それを回避する方法はありません。本当に必要な場合は、vim-devで慎重に表現された引数で主張するか、パッチを提供する必要があります。
ロメインル

スムーズなスクロールが必要な理由は、行を個別にスクロールするときに場所を失う傾向があるためです。説明するのは難しいです。多分それは皆に影響を与えませんが、私には影響します
エディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.