2016-12-29 12 views
7
silversearcher

에서 긴 줄을 무시합니다.은 지금 내가 사용하고

Silversearcher는 문서에서이 있습니다

--print-long-lines 
      Print matches on very long lines (> 2k characters by default). 

내가 뭔가 다른 2K를 변경할 수 있습니까? (나를 위해 120, 정직하게도 실제 코드로 작업하는 코드 중 어느 것도 결코 그것보다 길기 때문에). 나는 세 가지 옵션의

답변

8

매우 이상하게도, 문서화 된 --print-long-lines은 실제로 아무것도 수행하지 않지만 아직까지는 작동 스위치가 있습니다 : -W NUM/--width NUM 이는 전혀 문서화되어 있지 않습니다. https://github.com/ggreer/the_silver_searcher/pull/720

+1

우분투의 ag 버전 (0.31.0)은 아직 지원하지 않습니다. – exebook

1

을 생각할 수 있습니다 : 잘 ag --color -o

  • 사용 적은 대신 컷 :

    1. 그냥 -o 옵션을 사용하여, 전체 라인 대신 검색 결과를 인쇄 -S 옵션 (긴 줄을 잘라)과 -R 옵션을 사용하여 화면 크기의 폭에 턱 긴 라인 (색상 이스케이프 시퀀스를 다루는) : SED 같은 ag --color <pattern> | less -R -S

    2. 사용 일 또는 대신 컷의 AWK는 : ag --color <pattern> |sed -E "s/(.{$COLUMNS}).*$/\1/"

    화면 크기의 한계에 반환 된 선을 잘라 버릴 꺼야한다. 물론 120 열을 잘라 내기로 결정한 경우 다음을 수행 할 수 있습니다. ag --color <pattern> |sed -E "s/(.{120}).*$/\1/"

    이 마지막 옵션은 색상 이스케이프 시퀀스 중간에서 자르기 가능성을 방지하지 않습니다. 만약 당신이 정말로 곤란하다면, sed 검색 패턴을 수정하여 색상 이탈 시퀀스를 무시할 수 있습니다 - 이미 SO에 답변 됨. 즉, 위의 옵션 1의 쉽고 정확함을 고려할 때이 작업을 수행하는 목적을 알지 못합니다.