忽略silversearcher中的长队

时间:2016-12-29 13:16:30

标签: ag

现在我正在使用:

newEvent.value = 1;
newEvent.station = 0;
newEvent.evtTime = nextTime;

但如果搜索匹配被Event命令删除,这将导致颜色伪影。

Silversearcher在文档中有这个:

 ag sessions --color|cut -b1-130

我可以将 2k 更改为其他内容吗? (对我来说120,因为老实说从来没有使用任何代码我使用真正的代码比这更长)。

3 个答案:

答案 0 :(得分:11)

非常奇怪的是,记录在案的--print-long-lines实际上什么也没做,但是有一个工作开关:-W NUM / --width NUM根本没有记录。见https://github.com/ggreer/the_silver_searcher/pull/720

答案 1 :(得分:1)

我可以想到三个选择:

  1. 只需使用-o选项打印搜索结果而不是整行:ag --color -o

  2. 使用less而不是cut,使用-S选项(切断长行)和-R选项(处理颜色转义序列)在屏幕大小的宽度上很好地切断长行: ag --color <pattern> | less -R -S

  3. 使用像sed或awk这样的内容而不是剪切:ag --color <pattern> |sed -E "s/(.{$COLUMNS}).*$/\1/"

  4. 这将在屏幕大小的限制下剪切返回的行。当然,如果你决定在120列进行切割,你可以:ag --color <pattern> |sed -E "s/(.{120}).*$/\1/"

    这最后一个选项并不能防止在颜色转义序列中间切断的可能性。如果您真的很擅长,可以修改sed搜索模式以忽略颜色转义序列 - 已在SO上回答。也就是说,考虑到上面选项1的简单性和正确性,我没有看到这样做的目的。

答案 2 :(得分:0)

ag --width 400 string dir/

# In .bash_aliases (s is for short)
alias ags='ag --width 400'

忽略超过400个字符的行。