tail -f를 사용하여 vim으로 컬러 출력을 표시하는 방법은 무엇입니까?

tail -f를 사용하여 vim으로 컬러 출력을 표시하는 방법은 무엇입니까?

이에질문, Gilles가 대답했습니다.

tail -f또 다른 가능성은이맥스쉘 버퍼를 사용하고 Emacs의 구문 색상 지정 기능을 사용합니다.

저는 vim 사용자이기 때문에 다음과 같이 하고 싶습니다.정력, 아니다이맥스.
하다정력이 기능이 있나요?

답변1

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

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

다른 프로그램을 수락하는 경우,grc그리고ccze스트림을 색칠할 수 있습니다.

답변2

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

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

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

(거의 파일 끝으로 이동하려면 피드키에 "lh" 대신 "G"를 사용하세요)

설명:

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

를 사용할 때 스크롤을 멈추려면 call feedkeys("G")실행하십시오 :set noautoread. 이제 vim은 파일이 변경되었음을 알리고 변경 사항을 읽을지 여부를 묻습니다.

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

*이것으로부터답변(답변을 참조하여판하이꽝그리고 님의 댓글독감)

관련 정보