2010-06-30 5 views
16

내가, pyflakes을 실행하는 데 flymake를 사용하려고 해요,하지만 난 문제가 남아있어 어디 flymake/pyflakes는 실행시 버퍼를 '수정'합니다 (실제로 아무것도 변경되지는 않지만). 실제로는 쓸모가 없습니다 (예 : 파일을 저장하면 즉시 버퍼를 수정하는 flymake가 실행됩니다). 원격 상자에emacs에서 flymake와 tramp를 사용하여 pyflakes를 원격으로 실행 하시겠습니까? <a href="http://www.emacswiki.org/cgi-bin/wiki/PythonMode#toc9" rel="nofollow noreferrer">here</a></p> <p>이 로컬 파일에 대해 잘 작동, 거의 미세 조정의 비트와 함께 원격 파일 작업을 제안

  1. 설치 pyflakes :

    는 여기에 내가 거의 작동 얻기 위해 무슨 짓을했는지.

  2. tramp-remote-process-environment 변수를 사용자 지정하여 pyflakes가 PATH에 있음을 확인했습니다.
  3. 위의 위키 링크의 코드 변형을 사용했습니다. 분명히 원격 버퍼에 대해이를 비활성화하는 검사를 제외했습니다. 또한 (when (load "flymake" t) ...) 구조가 예상대로 작동하지 않는 것 같았지만 걱정하지 않았습니다.
  4. flymake-start-syntax-check-process 함수가 대신에 start-file-process (tramp와 함께 사용됨)을 사용하도록 다시 정의됩니다 (테스트 목적을 위해 - 작동하도록 설정하면 문제가 없습니다.).

# 4의 변경 사항은 로컬 파일을 처리 할 때 문제를 일으키지 않지만 flymake가 원격 파일에 대해 원격 pyflakes를 실행할 수있게하지만 (오류는 예상대로 강조 표시됨)이 경우 flymake가 실행될 때마다 버퍼가 '수정'됩니다.

원격 프로세스의 경우 start-file-process이 로컬 프로세스에서 발생하지 않는 일부 추가 반환 값/데이터를 생성한다고 추측합니다.

누구에게 통찰력이나 조언이 있습니까?

  • 이맥스 23.1 우분투에 23.2
  • 파이썬 당신은 그것을 로컬 버퍼 somewhere의 사본입니다 create에 flymake 말할 필요가
+0

참고 : 2014 년에 elpa (내가 0.4.16 버전)와 함께 설치할 수있는 표준 flymake는 flymake-run-in-place 변수를 포함합니다.이 코드를 nil로 간단하게 사용자 정의하고 flymake는 $ TMP에 파일을 저장합니다 – gromgull

답변

8

(easy_install을 통해) 2.4.6

  • Pyflakes 0.4.0 이 이기 때문에 $TMP 디렉토리를 사용하면 쓰기 권한이없는 디렉토리의 파일에서 tramp를 사용할 수 있습니다.

    이 모든 작업을 수행하므로 내 포크 flymake-python을 계산할 수 있습니다.

  • +1

    그럴 가능성은 있지만, 더 이상 테스트 할 수있는 편리한 위치에 있지 않습니다. 킹핀, 받아 들여질 해결책이 있다면 알려주시겠습니까? – phils

    +0

    두목이 그렇다고 대답 – prince

    +0

    이 경우, 모두 대단히 감사합니다. – phils

    6

    나는 이것을 Flymake (https://github.com/illusori/emacs-flymake)의 내 포크에서 수정했습니다.

    보고있는 버퍼 수정 문제없이 Tramp를 통해 원격 시스템에서 구문 검사를 실행합니다. 또는 flymake-run-in-placenil으로 설정하면 일반 Tramp가 아닌 버퍼의 flymake와 마찬가지로 로컬 시스템에서 구문 검사를 실행합니다.

    플라이 메이크 레벨에서 고정되었으므로이 픽스는 pyflakes가 아닌 모든 언어 및 구문 검사에 적용됩니다.

    기본적으로 시작 파일 프로세스의 Tramp 처리기가 실행될 때 기본적으로 현재 필터의 끝으로 연결에 대한 로그인 메시지가 덤프됩니다. 프로세스에 첨부된다.

    보통 이것은/etc/issue의 내용이 "You have mail"과 함께 파일 끝에 나타납니다. 등등.

    경우에 따라 로그인 메시지가 비어 있거나 개행만으로 버퍼가 수정되는 것으로 설정되어 있어도 추가되는 텍스트가 표시되지 않을 수 있습니다.

    +0

    정보를 제공해 주셔서 감사합니다. 이는 개선 된 훌륭한 컬렉션처럼 보입니다. – phils