仅查看少于/长于......字符的行

时间:2012-11-15 08:08:07

标签: vim command character lines

我正在使用Sed脚本只查看比..字符更少或更长的行 该脚本不能同时使用(当我想查看的行少于p.e.80个字符,长度超过70个字符时)。

有没有人知道Vim中是否有一个简单的解决方案只能查看这些行并清空(不删除)所有其他行

体育课。
a)仅查看小于75个字符的行
数 b)仅查看长度超过80个字符的行 b)仅查看小于75个字符且长于65个字符的行

3 个答案:

答案 0 :(得分:3)

您可以使用vimgrep命令:

:vimgrep /\v^.{65,75}$/ %

它将提取当前文件中包含65~75个字符的行。


{,74}    =>  less than 75
{81,}    =>  great than 80
{66,74}  =>  between 65 and 75 (exclusively)

<强>更新

您可以使用此命令清空不匹配的行:

:v/\v^.{65,75}$/s/.*//

它会排空包含0~6476~+∞个字符的行。

答案 1 :(得分:2)

与ZyX的答案类似,这折叠了不包含65~75个字符的行。

:set foldmethod=expr foldexpr=getline(v:lnum)!~'\\v^.{65,75}$' foldlevel=0

答案 2 :(得分:1)