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


9

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

또 다른 가능성은 Emacs 쉘 버퍼 tail -f에서 실행 하고 Emacs의 구문 색상 지정 기능을 사용하는 것입니다.

나는 vim 사용자이기 때문에 emacs가 아닌 vim으로 이것을하고 싶습니다 . 않는 정력은 이 기능이?


2
Vim은 Emacs와 달리 텍스트 편집기 일뿐입니다. 그러나 Vim 용 테일 플러그인 이 있습니다.
jasonwryan

트릭을 수행 할 수 있는 vimpager 플러그인 도 있습니다
bsd

1
텍스트 편집기 여야합니까? 텍스트를 색칠하기 만하면 Clide
golimar

또한 vim 용 TailBundle 이 있습니다.
jofel

비슷한 질문이 있습니다 . 솔루션은 멀티 테일 사용 및 구성 방법을 설명 합니다. 유용 할 수 있습니다.
로그 오프

답변:


2

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

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

다른 프로그램을 수락하면 grcccze 가 스트림을 채색 할 수 있습니다.


0

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

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

또한 당신은 :set syntax=logtalk로그를 색칠 할 수 있습니다

(파일의 끝까지 (거의) 점프하려면, 피드 키와 함께 "lh"대신 "G"를 사용하십시오)

설명:

  • autoread: 외부에서 변경 될 때 파일을 읽습니다 (그러나 자체적으로 작동하지 않으며 내부 타이머 또는 이와 유사한 것이 없습니다. vim이 ex의 명령과 같은 동작을 수행 할 때만 파일을 읽습니다) :!
  • CursorHold * checktime: 사용자가 지정한 시간 동안 커서를 움직이지 않으면 updatetime(기본적으로 4000 밀리 초) checktime파일 외부에서 변경 사항을 확인합니다.
  • call feedkeys("lh"): 커서가 한 번 좌우로 움직입니다. 그런 다음 아무 일도 일어나지 않습니다 (... 즉, CursorHold트리거됨을 의미하므로 루프가 있음 )

를 사용할 때 스크롤을 멈추려면 call feedkeys("G")execute :set noautoread-now vim은 파일이 변경되었다는 것을 알리고 변경 사항을 읽고 싶은지 묻습니다.)

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

*이 답변에서 ( PhanHaiQuang 의 답변 과 flukus 의 의견 참조 )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.