3

1つの回答を受け入れましたが、問題は解決しません。

問題: lazyredraw と showcmd が offであるにもかかわらず、Vim が Mac の Screen で画面を非常にゆっくりと更新します。


たとえば、行番号の代替テキスト http://dl.getdropbox.com/u/175564/vimScreenFold.pngがある場合、行番号は次のように foldColumn に表示されます。

.vimrc に何もない場合、問題は複数のコメント行を重ねることで確認できます: alt テキスト http://dl.getdropbox.com/u/175564/vimScatteredBug.png

左側に次のコメントを複数回入力しませんでした

"set list...

観察

  1. コメント行と空行でのみ発生するようです。しかし、そうではないことを示す証拠(2)を入手しました。
  2. 散乱は主に左側のウィンドウで発生します。それらは単一のウィンドウでも発生します。ただし、それを検出するのは困難です。
  3. .vimrc に何もない場合、バグの発生は少し異なります。ただし、「停滞」は、空の .vimrc と空でない .vimrc の両方の状況で発生します。

バグの特定

従属変数

  1. Vim によって自動的に配置されるコメント記号に依存します。ファイル全体を表示できなかったときに、Vim が Python のコメント記号 # を自動的にファイルに追加すると、ピクセルが消えることに気付きました。
  2. 少なくとも OS/X Leopardに依存します。

独立変数

  1. ファイル独立: Vim によって編集されたすべてのファイルで発生します
  2. 行独立: コメントと空行のない Python コードで発生します
  3. .vimrc 独立: 空の .vimrc で発生
  4. .screenrc 独立: 空の .screenrc で発生
  5. シェルに依存しない: Bash と Zsh で発生します
  6. 画面のバージョンに依存しない: Leopard のデフォルト画面と Screen 4.0.3 で発生します。
  7. さまざまなコメント文字とは無関係: .zshrc、.vimrc、.screenrc など、下にスクロールするときに発生します。

Vim のデフォルト設定を無効にするにはどうすればよいですか?

4

8 に答える 8

3

termcap と terminfo の設定に問題があるのではないかと推測しています。screenrc からそれらをコメントアウトして、画面を再起動してみてください。

また、どの(非仮想)端末を使用していますか?

ああ、OSXの Terminal.app を使用しているようです。これはまさに私が (でscreen/zsh/vim) 使用しているものです。 空でデフォルト/usr/bin/screenで動作するはずです。/usr/bin/vim.screenrc.vimrc

% touch empty_screenrc
% cat empty_screerc
% /usr/bin/screen -c empty_screenrc
#...and within screen
% /usr/bin/vim -u NONE

それでも問題が解決しない場合は、シェルに問題がある可能性があります。しかし、これで問題が解決した場合は~/.vimrc、さらなる診断に役立てるために投稿することをお勧めします。

于 2009-05-25T04:50:14.440 に答える
2

OSXのデフォルトバージョンの画面は256色をサポートしていないと思います。.vimrcファイルで使用する色の数を減らすようにvimを設定できます。

set t_Co=16

Mac OS Xでは、256色を使用するように画面を再構築できます。http://pjkh.com/articles/2008/07/09/osx-iterm-screen-vim-256-colorsを参照してください。

手順の短いバージョンは次のとおりです。

画面を再構築し、256色のオプションが含まれていることを確認します。

./configure --enable-colors256

次に、〜/.screenrcに以下を追加する必要があります。

# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
attrcolor b ".I"
# tell screen how to set colors. AB = background, AF=foreground
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# erase background with current bg color
defbce "on"

ソース

于 2009-05-29T21:13:01.123 に答える
2

私はこの問題を抱えていました (痛々しいほど遅い) が、Terminal.App と ITerm で使用していた Consolas フォントになってしまいました。私の場合、モナコに切り替えるとかなりスピードが上がりました。

于 2011-01-21T03:45:47.000 に答える
2

プラグインはなく、.vimrc と .screenrc にも何もありません。問題はまだ解決していません。

バグの特定

  1. ファイル独立: Vim によって編集されたすべてのファイルで発生します

「よどみ」は主にコメント行や空行で発生するようです。ただし、バグはコメントや空行がなくても発生しますが、その影響ははるかに小さいようです.

観測 2 代替テキストの画像 http://dl.getdropbox.com/u/175564/cruxMoveInVimScattered.png

于 2009-05-27T14:21:05.663 に答える
1

OS X のラップ モードに関連するいくつかの既知の問題があるようです。番号 1 を参照してください。回避策を提案します。

于 2009-06-02T19:18:51.523 に答える
1

重要な動き: Vim のデフォルト オプションの一部が問題を引き起こしているため、バグが発生しているようです

.vimrc と .screenrc でデフォルトの構成を使用しています。これはバグの原因ではないことがわかったからです。

バグはわずかにコメントと空行依存のようです。私はそれの証拠を得ました。

私の Python コードにはコメントも空行もありません。しかし、Vim が行全体を表示できない場合、コードにコメント マークが付けられることに気付きました。たとえば、Vim がそこに付けた 3 つの # マークに注目してください。

これにより、ピクセルが消えました。

代替テキスト http://dl.getdropbox.com/u/175564/pythonBug.png


Vim によって自動的に付けられたコメント記号が表示されない場合、同じファイルでバグが発生しているようです。

代替テキスト http://dl.getdropbox.com/u/175564/counterExample.png

消えたピクセルがはっきりと見えるように、意図的に画像のコードを複製しました。

Python コードをいじっていたときに、コードに 1 行の空行を追加した後に "停滞" が大幅に発生したことに気付きました。ただし、イベントを複製することはできませんでした。


.vimrc によるバグ解決の試みの失敗

  1. Vim によって自動的に設定されたコメント記号を無効にする

    set formatoptions-=c

于 2009-05-30T12:08:07.630 に答える
1

カラーコードが正しく閉じられていないことが原因で、irssi と bash で同様の問題が発生しました。

別の vim テーマ (特にデフォルトのテーマ) を試しましたか、または実行してい:syntax offますか?

于 2009-07-05T18:47:43.330 に答える
0

デバッグ:

ある人は、他のアプリケーションの変更から端末をフリーズすることを提案しました

ttyctl -f

しかし、それは問題を解決していないようでした。それにもかかわらず、現在状況を変える他のアプリがないため、バグを見つけるのに役立つ場合があります.

于 2009-06-11T20:03:58.290 に答える