화면에 세로 및 가로 방향으로 오버플로되는 큰 데이터 파일이 있다고 가정합니다. 헤더 행이 화면에 유지되는 동안 어떻게이 파일을 찾아 볼 수 있습니까?
현재는을 사용하여 less -S
파일을 가로 및 세로로 멋지게 스크롤 할 수 있습니다. 그러나 아래로 스크롤하면 헤더 행이 사라집니다. 이것을 덜 사용하는 방법이 있습니까?
다른 방법은 vim
로 분할 화면 모드를 사용하는 것 :set nowrap
입니다. 그러나 이제 가로로 스크롤하면 상단 창이 같은 방식으로 스크롤되지 않습니다 ( :windo set scrollbind
내가 아는 한 세로 스크롤에서만 작동합니다).
답변
vim에 익숙하다면 아마도 이것이 최선의 선택 일 것입니다. 다음을 변경하여 수평 스크롤 바인드 전용을 사용할 수 있습니다 'scrollopt'
.
set scrollopt=hor
따라서와 함께 vim -u NONE
원하는 동작을 얻을 수 있습니다.
:set scrollopt=hor
:set nowrap
:1split
:windo set scrollbind
건너 뛴 열 수와 가장자리 건너 뛰기 시작 간격을 각각 조정 'sidescroll'
하고 'sidescrolloff'
변경 하려고 할 수 있습니다 .
답변
스크롤 영역 설정을 지원하는 터미널에서 :
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
답변
이것을 시도하십시오 (설치해야합니다 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
수 있음).
답변
Thor의 대답은 세로 “scrollopt”를 비활성화하여 두 창을 세로로 스크롤하는 것을 언급하지 않았습니다. 그래서 나를 위해 완벽한 솔루션은 이것을 vim에 붙여 넣습니다.
:set scrollopt+=hor
:set scrollopt-=ver
:set nowrap
:1split
:windo set scrollbind
답변
이것은 내가 가진 한 tmux
:
#!/bin/bash
tmux new-session -s main -n 'w1' -d
tmux send-keys -t main:w1.0 "tail -f <(head -n1 $1)" C-j
tmux split-window -v
tmux resize-pane -t 0 -y 2
tmux send-keys -t 1 "tail -n+2 $1|less -S" C-j
tmux attach -t main
그것은 창 분할에 대한 user80519의 답변 을 확장 한 것입니다 tmux
. 다른 이름으로 저장 hless.sh
하고 실행 가능하게 만들고 다음과 같이 사용하십시오.
hless.sh file