Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么vim';s delete命令太慢了_Vim - Fatal编程技术网

为什么vim';s delete命令太慢了

为什么vim';s delete命令太慢了,vim,Vim,我有一个包含大约5000行的文件,我想删除所有包含“some_string”的行,所以我首先搜索/some_string,然后执行:g//d。删除约90%的行需要5分钟以上的时间。有什么好处 相比之下,如果我运行sed-I'/some\u string/d'some\u file需要46毫秒。在命令中添加下划线 我遇到了类似的问题,结果是每一行都被复制到了我的系统剪贴板上。通过添加一个\uu,您可以告诉vim使用黑洞寄存器 :g//d_ 帮助提供了的以下语法:d :[range]d[elete

我有一个包含大约5000行的文件,我想删除所有包含“some_string”的行,所以我首先搜索
/some_string
,然后执行
:g//d
。删除约90%的行需要5分钟以上的时间。有什么好处


相比之下,如果我运行
sed-I'/some\u string/d'some\u file
需要46毫秒。

在命令中添加下划线

我遇到了类似的问题,结果是每一行都被复制到了我的系统剪贴板上。通过添加一个
\uu
,您可以告诉vim使用黑洞寄存器

:g//d_
帮助提供了
的以下语法:d

:[range]d[elete] [x] Delete [range] lines (default: current line) [into register x]. :[range]d[elete][x]删除[range]行(默认值:当前行)[进入寄存器x]。
我只是拿了一个180000行的文件,然后运行了一个类似的命令。在不到0.1秒的时间内,3170条线路在一瞬间被删除。我相信您的问题不在于vim。当您在没有
.vimrc
文件的情况下运行vim时,是否会发生同样的问题?您的
某些字符串是否包含任何特殊字符?也许这不是一个简单的模式。有关vim的正则表达式语言与其他语言的区别,请参见
:help magic