수직 및 수평으로 화면을 가득 채우는 대용량 데이터 파일이 있다고 가정해 보겠습니다. 머리글 행이 화면에 남아 있는 동안 어떻게 파일을 찾아볼 수 있나요?
현재 저는 less -S
파일을 수평 및 수직으로 멋지게 스크롤할 수 있도록 사용하고 있습니다. 그러나 아래로 스크롤하면 헤더 행이 눈에 띄게 사라집니다. 이러한 사용량을 줄일 수 있는 방법이 있나요?
또 다른 방법은 vim
분할 화면 모드에서 사용하는 것 입니다 :set nowrap
. 그러나 이제 가로로 스크롤하면 위쪽 창은 같은 방식으로 스크롤되지 않습니다( :windo set scrollbind
내가 아는 한 세로 스크롤에서만 작동합니다).
답변1
스크롤 영역 설정을 지원하는 터미널에서:
tailf() ( # args: <file> [<number-of-header-lines>]
trap 'tput csr 0 "$((LINES-1))"' INT
tput csr "$((1+${2-1}))" "$((LINES-1))"
tput clear
{
head -n"${2-1}"
printf "%${COLUMNS}s\n" "" | tr ' ' =
tail -n "$((LINES-1-${2-1}))" -f
} < "$1"
)
zsh
( 터미널의 크기에 따라 bash
설정 및 변수를 설정 하거나 유사한 쉘이 있다고 가정합니다 .)$COLUMNS
$LINES
답변2
vim에 익숙하다면 이것이 최선의 선택일 수 있습니다. 다음을 변경해야만 가로 스크롤 바인딩을 활성화할 수 있습니다 'scrollopt'
.
set scrollopt=hor
따라서 vim -u NONE
다음을 통해 원하는 동작을 얻을 수 있습니다.
:set scrollopt=hor
:set nowrap
:1split
:windo set scrollbind
건너뛴 열 수와 가장자리 건너뛰기 시작점으로부터의 거리를 개별적으로 조정 'sidescroll'
하고 변경 해야 할 수도 있습니다 .'sidescrolloff'
답변3
이것을 시도하십시오 (설치해야합니다multitail
):
multitail -du -t "$(head -n 1 filename)" filename
또는 한 줄보다 긴 제목의 경우:
multitail -wh 2 -l "head -n 2 filename" filename
파일 대신 명령 출력을 추적하려면 다음을 수행하십시오.
multitail -wh 2 -l "command | head -n 2" -l command
또는 -t
적절하게 사용하십시오. 사용해야 할 수도 있습니다.unbuffer
따라서 명령 출력이 즉시 나타납니다.
-D
양식 상태 표시줄 표시를 비활성화 할 수 있습니다 -wh
(양식의 목적에 어긋남 -t
).
답변4
최첨단 버전에서는 less
이 옵션을 통해 이를 지원합니다 --header
.
덜 버전 603 릴리스 노트
버전 603은 2022년 3월 15일 베타 테스트를 위해 출시되었습니다.
버전 590과 버전 603의 차이점은 다음과 같습니다.
- --header 옵션을 추가합니다.
- --no-number-headers 옵션을 추가합니다.
- --status-line 옵션을 추가합니다.
- ...