3

尽管我接受了一个答案,但问题并没有解决。

问题:尽管lazyredraw 和showcmd 关闭,Vim 在Mac 的Screen 中更新屏幕非常缓慢。


行号在 foldColumn 上如下所示,例如,当我有行号 alt text http://dl.getdropbox.com/u/175564/vimScreenFold.png

当我的 .vimrc 中没有任何内容时,可以通过将注释行叠加在一起看到问题: alt text http://dl.getdropbox.com/u/175564/vimScatteredBug.png

我没有在左侧多次输入以下评论

"set list...

观察

  1. 似乎只出现在注释行和空行中。然而,我得到的证据(2)表明情况并非如此。
  2. 分散主要发生在左侧窗口中。它们也出现在单个窗口中。然而,它更难用它来检测。
  3. 当我在 .vimrc 中没有任何内容时,该错误的发生略有不同。然而,“停滞”发生在两种情况下:空的 .vimrc 和非空的 .vimrc。

错误识别

因变量

  1. 依赖于Vim 自动放置的注释符号。当 Vim 无法显示整个文件时,我注意到当 Vim 将 Python 的注释符号 # 自动添加到我的文件时,像素消失了。
  2. 至少依赖于OS/X Leopard。

自变量

  1. 文件无关: 出现在 Vim 编辑的所有文件中
  2. 行无关:出现在没有注释和空行的 Python 代码中
  3. .vimrc 独立:与空 .vimrc 一起发生
  4. .screenrc 独立:出现空 .screenrc
  5. shell 独立:与 Bash 和 Zsh 一起发生
  6. 屏幕版本独立:出现在 Leopard 的默认屏幕和屏幕 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

如果问题仍然存在,则问题可能出在您的 shell 中。但是,如果这可以解决问题,我建议您发布~/.vimrc以帮助进一步诊断。

于 2009-05-25T04:50:14.440 回答
2

我没有插件,.vimrc 和 .screenrc 中也没有任何内容。问题仍然存在。

错误识别

  1. 文件无关: 出现在 Vim 编辑的所有文件中

“停滞”似乎主要发生在注释行和空行中。但是,该错误也发生在没有注释和空行的情况下,但它的影响似乎要小得多。

观察图片 2 替代文字 http://dl.getdropbox.com/u/175564/cruxMoveInVimScattered.png

于 2009-05-27T14:21:05.663 回答
2

我认为 OS X 默认版本的屏幕不支持 256 色。您可以将 vim 设置为在 .vimrc 文件中使用较少数量的颜色:

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 回答
1

症结之举:这个bug的出现似乎是因为Vim的一些默认选项导致了这个问题

我现在在 .vimrc 和 .screenrc 中使用我的默认配置,因为我观察到它们不会导致错误。

该错误似乎与注释和空行有关。我得到了它的证据。

我的 Python 代码中没有注释,也没有空行。但是,我注意到当 Vim 无法显示完整的行时,它会在我的代码中添加注释标记。例如,注意 Vim 放在那里的三个 # 标记。

这导致了消失的像素。

替代文字 http://dl.getdropbox.com/u/175564/pythonBug.png


当我看不到 Vim 自动放置的注释符号时,该错误似乎发生在同一个文件中。

替代文字 http://dl.getdropbox.com/u/175564/counterExample.png

我故意复制了图片的代码,以便您可以清楚地看到消失的像素。

当我在玩 Python 代码时,我注意到在我将一个空行放入代码后,“停滞”发生得很大。但是,我没有设法复制该事件。


通过 .vimrc 解决错误的尝试失败

  1. 禁用 Vim 自动设置的注释符号

    设置格式选项-=c

于 2009-05-30T12:08:07.630 回答
1

看起来有一些与 OS X 的换行模式相关的已知问题,请参见第 1。它提出了一种解决方法。

于 2009-06-02T19:18:51.523 回答
1

我在 irssi 和 bash 上遇到过类似的问题,这是由颜色代码未正确关闭引起的。

您是否尝试过不同的 vim 主题(特别是默认主题)或正在运行:syntax off

于 2009-07-05T18:47:43.330 回答
0

调试:

有人建议我通过以下方式冻结我的终端免受其他应用程序的更改

ttyctl -f

但是,它似乎并没有解决问题。尽管如此,它可能会帮助我们找到错误,因为我们现在没有其他应用程序可以改变这种情况。

于 2009-06-11T20:03:58.290 回答