2013-11-21 6 views
2

나는 수정 후 파일을보기 위해 gevent 및 gevent_inotifyx와 함께 python을 실행 중이므로 IN_CLOSE_WRITE 마스크를 사용하여 파일이 쓰기 후에 닫힐 때까지 기다립니다. 내 사건은 처음에는 해고되지만 그 후에는 해고 당하지 않습니다. vim을 사용하여 수동으로 파일을 편집합니다.inotify IN_CLOSE_WRITE는 수동으로 편집 한 파일에 대해 한 번만 실행합니다.

다른 로그 파일을 사용하여보고, 예상대로 작동합니다. 이것은 파이썬 로깅 파일이며 로그 파일이 내용으로 변경 될 때마다 이벤트가 발생합니다.

이전에이 상황을 경험 한 사람이 있습니까? 이것은 일부 동기화 또는 디스크로의 플러시로 인한 것일 수 있습니까?

+0

vim에서 어떤 특정 명령을 실행하려면 'IN_CLOSE_WRITE' 이벤트가 필요합니까? – iruvar

+0

명령 줄 도구'inotifywait'를 설치하고 실행하고 vim을 통해 파일을 편집 할 때보고하는 이벤트를 확인하십시오. 'IN_CLOSE_WRITE' 이벤트를보고하면 (내 마지막에이 작업을 시도했을 때처럼) 아마도 코드에있을 가능성이 높습니다. – iruvar

+0

vim에서는 저장하기 위해': wq'를 사용합니다. 디버깅을 위해'inotifywait'을 시도 할 것입니다 고마워요, 고마워요. – opensourcegeek

답변

5

기본적으로 Vim은 파일 내용을 임시 파일에 기록한 다음 원본 위로 이동합니다 (:help backup 참조). 이 파일은 이제 다른 파일 (핸들)이므로 이벤트가 시작되지 않습니다. 당신은 일반적으로 처리하려면

당신은 당신이 너무 대신 파일의 디렉토리를 모니터링하고 파일 이동을 감시해야 할 것,

:set backupcopy=yes 

를 설정하여 빔이 원본 파일을 오버라이드 (override) 할 수 있습니다.

관련 문제