vim으로 tail -f 디스플레이 컬러 출력을 만드는 방법은 무엇입니까?

vim으로 tail -f 디스플레이 컬러 출력을 만드는 방법은 무엇입니까?

이것에질문, 자일스가 대답했습니다.

또 다른 가능성은 tail -f실행하는 것입니다이맥스쉘 버퍼를 사용하고 Emacs의 구문 색상 지정 기능을 사용하십시오.

나는 vim 사용자이기 때문에 이것을하고 싶습니다, 아니요이맥스.
하다그런 기능이 있나요?

답변1

다중 스레드 플러그인을 작성하여 Python이나 Vim이 지원하고 스레드가 있는 다른 스크립트에서 실시간으로 버퍼를 변경할 수 있습니다.

그러나 내가 아는 한 이것은 터미널에서만 작동합니다. 적어도 X11에서는 GUI가 다른 스레드에 의해 수정되면 GUI 버전이 충돌합니다.

다른 계획을 수락하면GRC그리고니시자와스트림을 색상화하는 기능.

답변2

나는 그것이 짧고 해킹이나 외부 스크립트가 많지 않다는 것을 좋아합니다. 필요할 때 ex(vim에서)에서 이 oneliner를 실행할 수 있습니다(또는 로그 파일을 열 때 사용할 각 명령을 vimrc에 넣을 수 있습니다).

:set autoread | au CursorHold * checktime | call feedkeys("lh")

:set syntax=logtalk또한 로그에 색상을 지정할 수 있습니다.

(거의 파일 끝으로 이동하려면 피드키와 함께 "lh" 대신 "G"를 사용하면 됩니다.)

설명하다:

  • autoread: 외부에서 변경될 때 파일을 읽습니다. (하지만 자체적으로는 작동하지 않습니다. 내부 타이머 등이 ​​없습니다. vim이 ex 명령과 같은 작업을 수행할 때만 파일을 읽습니다.:!
  • CursorHold * checktime: 사용자가 지정된 시간 updatetime(기본값은 4000ms) 내에 커서를 이동하지 않을 때 실행 checktime, 파일 외부에서 변경 사항을 확인
  • call feedkeys("lh"): 커서가 오른쪽으로 한 번 이동한 다음 왼쪽으로 한 번 이동합니다. 그러면 아무 일도 일어나지 않습니다(...즉, CursorHold트리거되었다는 의미입니다.반지)

사용 중에 스크롤을 멈추려 call feedkeys("G"):set noautoreadvim에서 파일이 변경되었음을 알리고 변경 사항을 읽을 것인지 묻습니다.

나는 screen/tmux 없이 ssh 세션에서 작업할 때 tail -f 대신 vim에서 로그 파일을 보는 것을 좋아합니다. 또한 원하는 경우 로그 파일에서 직접 복사하거나 출력을 직접 저장하거나... vim으로 할 수 있는 모든 작업을 수행할 수 있습니다 :)

*따라서답변(답변을 참고하세요판하이광그리고 댓글우연)

관련 정보