Python 为什么当我在下面插入一条大线时,vim使用了99%的CPU?

Python 为什么当我在下面插入一条大线时,vim使用了99%的CPU?,python,vim,Python,Vim,当我试图在一个Python文件中使用o在vim中插入下面的代码时,该文件在一行(下面的第3行)上包含一个大字典,我的终端窗口挂起,CPU使用率飙升到99% 我有一个类似于以下内容的Python测试文件: 来自库导入模块的1 2. 3 DICT={} 4 KEY=“examplekey” 5. 6定义dict()上的测试函数: 7预期输出=42 8输出=模块调用功能(DICT,键) 9断言输出==预期的_输出 当我在第5行输入o时,CPU峰值达到99%,我无法与文件交互。如果删除大型单行字典,v

当我试图在一个Python文件中使用o在vim中插入下面的代码时,该文件在一行(下面的第3行)上包含一个大字典,我的终端窗口挂起,CPU使用率飙升到99%

我有一个类似于以下内容的Python测试文件:

来自库导入模块的
1
2.
3 DICT={}
4 KEY=“examplekey”
5.
6定义dict()上的测试函数:
7预期输出=42
8输出=模块调用功能(DICT,键)
9断言输出==预期的_输出
当我在第5行输入o时,CPU峰值达到99%,我无法与文件交互。如果删除大型单行字典,vim的速度将恢复正常

Vim最大的优点之一是编辑速度快,这让我很快就感到恼火。我看到了有关评测vim的“”,但我的问题在于插入,而不是加载时间。我正在使用

My.vimrc看起来像这样:

call plug#begin('~/.vim/plugged')
Plug 'junegunn/seoul256.vim'
Plug 'junegunn/goyo.vim'
Plug 'junegunn/limelight.vim'
Plug 'beautify-web/js-beautify'
Plug 'vimwiki/vimwiki'
call plug#end()
99.8是htop中的CPU百分比:

有人建议我的问题应该结束,因为它类似于“”。我不认为建议帖子回答了我的问题,因为我的长线,大字典,已经存在于文件中了vim在粘贴时不慢。vim在长线下方的o插入时慢。我认为问题的关键在于重新绘制“”中所述的所有内容所需的时间,但到目前为止,我还没有看到问题的明显解决方案


将字典扩展到多行可以解决这个问题。值得注意的是,当处于
:set paste
模式时,单行上大dict下方的o insert命令没有速度问题。此外,无论是在视觉模式还是粘贴模式下,当光标位于大dict上方且按下o键时,都不会出现问题。然而,我也感兴趣的是为什么会发生这种情况,而不仅仅是修复方法是什么

如更新中所述,解决方案是避免出现过长的线路

我会说,为了可读性,不将dict分成几行甚至是糟糕的编程实践


但这肯定会影响Vim的表现。我有一个大约500行500列的CSV文件,我仍然可以以合理的性能进行编辑。然而,我怀疑将所有线路连接在一起会导致您看到的相同问题

这回答了你的问题吗?当然是在正确的轨道上,但是文件中已经有了长长的一行。问题背后的想法是否相同?从6票的答案来看,这可能就是问题所在:
这是“正常的”。它很慢,因为重新绘制数千次文本很慢。
我认为即使只是四处移动也需要Vim重新绘制整个屏幕。也许这还取决于您使用的终端模拟器,并且GPU加速终端的性能会更快。@这里-这不是重复。我不是在vim中粘贴一本大词典。我在vim中的一行上,在已经存在的大/长字典下面插入一行。这不是同一个问题。我不想打一匹死马,但如果你看不出这个问题是不同的,而是相似的,那么继续下去就没有意义了。@ScottSkiles我不能投票重新开放,但我支持你,这不是重复。可能会引发自定义mod标志。PS:如果你尝试关闭语法突出显示怎么办?同意大量的长线。将数据写入一个辅助文件(格式为YAML)或将其粘贴到一个小数据库中,只是不要用巨大的数据块填充代码。编辑一个代码文件来更改数据是不明智的,也不明智的是仅仅为了维护代码而必须在巨大的数据块中导航。这是有道理的。我用一些样本输入做了一些一次性测试。我感谢您的回答和编辑!