vim: 파일의 모든 줄의 처음 n 글자 숨기기

vim: 파일의 모든 줄의 처음 n 글자 숨기기

vim을 사용하여 로그 파일을 분석하고 있는데 형식은 다음과 같습니다.

YYYY-MM-DD HH:MM:SS.USEC PID Name LogText

대부분의 경우 날짜와 시간에 신경 쓰지 않기 때문입니다. 나는 그것들을 숨기고 이름과 로그 텍스트 열에만 집중하고 싶습니다(일부 화면 공간을 절약하기 위해). 처음 세 개의 열은 항상 행의 처음 35자를 차지합니다. vim이 각 줄의 처음 35자를 표시하지 않도록 하는 방법이 있나요?

답변1

첫 글자를 제거하거나 눈에 띄지 않게 스크롤하는 대신 숨기는 방법에 대해 문의하셨습니다. 따라서 실제로 숨기는 방법은 다음과 같습니다.

Vim에서 텍스트를 숨기려면 hide를 사용하세요.

당신은 그것을 사용할 수 있습니다성냥, 결합하다구문 강조그리고숨다함수는 실제로 한 줄 내에서 일치하는 문자를 표시하지 않습니다.

각 줄의 처음 25자를 숨기려면:

:syn match Concealed '^.\{25\}' conceal
:set conceallevel=2

날짜 구두점이 있는 줄만 숨기려면 다음 단계를 따르세요.

:syn match Concealed '^....-..-.. ..:..:..\..... ' conceal

숨기기 해제:

:syn clear Concealed
:set conceallevel=0

일반적으로 다음과 같습니다.

YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText
YYYY-MM-DD HH:MM:SS.USEC PID Name LogText

처음 두 명령을 실행하면 다음과 같이 표시됩니다.

PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText
PID Name LogText


참조 - 내부 vim:
help :syn-match
help :syn-conceal
help 'conceallevel'
help 'concealcursor'


(이렇게 작동하지 않으면 알려주세요. 제가 모르는 일부 설정이 있을 수 있습니다. 그러면 작동하도록 하겠습니다.)

답변2

vim을 사용하여필터 기능. 달리기:

:%!cut -b36-

다음을 통해 버퍼의 내용을 실행합니다.cut명령에서는 바이트 36 이상만 예약됩니다. %전체 버퍼를 실행하고 그 내용을 출력으로 바꾼 다음 !필터 명령과 실행될 프로그램으로 나머지 줄을 바꾸는 것을 의미합니다. 버퍼를 맨 위에 저장하지 않으면 기본 파일이 수정되지 않습니다.

:e트리밍되지 않은 원래 버퍼를 복원하려면 실제 파일이 지원하는 경우 를 사용할 수 있습니다 .

답변3

나는 당신이 찾고있는 것과 더 일치한다고 생각합니다가로 스크롤.

Z가로 스크롤 명령 키와 이동 방향의 왼쪽 또는 오른쪽 화살표 키입니다.

먼저 :set nowrap줄 바꿈을 비활성화합니다. 그런 다음 z, 35,를 눌러 35칸 스크롤합니다.

답변4

버퍼나 파일을 수정할 필요가 없는 기억하기 쉬운 솔루션이 있습니다. L(귀하의 예에서) 보려는 파일 부분의 첫 번째 문자에 커서를 놓고 다음을 입력하십시오.

:set nowrap
zs

zs명령은 커서 위치의 문자가 화면의 첫 번째 열에 나타나도록 vi를 설정합니다. :set nosol프로필을 입력하지 않았는지 확인하세요 .

g$명령은 커서를 마지막으로 보이는 열로 이동합니다.

g0명령은 L을 포함하는 열인 표시되는 첫 번째 열로 커서를 다시 이동합니다.

아무 키나 커서를 보이는 열 바깥쪽 왼쪽이나 오른쪽으로 이동하면 보이는 창이 이동합니다.

관련 정보