컴파일 문제가 있을 때 터미널에 많은 내용을 인쇄하는 명령(컴파일러)이 있습니다. 일부 줄은 내 터미널 너비보다 길고 터미널 색상도 사용합니다(오류에는 빨간색 텍스트 등). 명령을 실행하고 출력의 첫 번째 화면/페이지만 표시하고 싶지만 줄바꿈과 색상을 고려하고 싶습니다.
고쳐 쓰다저는 cargo
구문 오류가 있는 경우 색상을 포함하여 많은 출력을 생성하는 Rust 컴파일러를 사용하고 있습니다. 를 사용하면 --colors=always
두 |&
가지를 동시에 표시할 수 있습니다. 예를 들어 cargo build --colors=always |& head -n 20
처음 20개 행을 표시합니다. 첫 페이지를 보여주고 싶어서
entr
자동 실행 에 사용하는 것은 명령이 모든 것을 먹어치워서 멈출 수 없기 find ./src/ -type f -name '*.rs' | entr -r bash -c 'cargo build -- color=always |& less -R
때문에 작동하지 않습니다 . less
실제로 이는 모든 출력을 숨깁니다.
답변1
다음을 찾고 있는 것 같습니다 less -R
.
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in
"raw" form. Unlike -r, the screen appearance is maintained cor‐
rectly in most cases.
이 플래그는 less
ANSI 색상 순서가 해석되어 출력이 터미널과 동일해야 함을 나타냅니다.
N이 터미널 창의 현재 크기인 첫 번째 N 줄만 가져오려면 다음을 사용하세요 $LINES
.
find ./src/ -type f -name '*.rs' |
entr -r bash -c 'cargo build -- color=always |& head -n $LINES
또는 명령을 시작할 때의 프롬프트와 완료 후 인쇄되는 프롬프트가 모두 한 줄을 차지하므로 다음과 같습니다.
find ./src/ -type f -name '*.rs' |
entr -r bash -c 'cargo build -- color=always |& head -n $((LINES-2))