2009-11-24 6 views
3
내가 이맥스에 많은 문제를 가지고와 함께 작동하도록 터미널을 얻으려고 노력 했어요

에서 작동하는 터미널을 얻으려고 노력 : 나는 Cygwin에서 설치이맥스

M-x term 

을 그리고 내 이맥스를 고정

을 : 나는 터미널을 시작할 때

그러나
(setenv "PATH" (concat "c:/cygwin/bin;" (getenv "PATH"))) 
    (setq exec-path (cons "c:/cygwin/bin" exec-path)) 
    (require 'cygwin-mount) 
    (cygwin-mount-activate) 
    (add-hook 'comint-output-filter-functions 
    'shell-strip-ctrl-m nil t) 
    (add-hook 'comint-output-filter-functions 
    'comint-watch-for-password-prompt nil t) 
    (setq explicit-shell-file-name "bash.exe") 
    ;; For subprocesses invoked via the shell 
    ;; (e.g., "shell -c command") 
    (setq shell-file-name explicit-shell-file-name) 

지금, 내가 시작하면

을 "중지"빈 화면이 아무것도주지과 같다 : 경로를 포함하도록 0

M-x shell 

실제로는 bash 쉘을 실행하고 파일 디렉토리를 비행하는 것은 괜찮습니다 (cd, ls, cp, rm 등). 그러나 파이썬 셸을 열려고 시도 할 때 다시 손으로 들어가서 입력합니다 ... 셸이 충돌합니다. 내가하는 일에 중대한 오류가 있습니까? 아니면 누군가 온라인 솔루션으로 나를 안내 할 수 있습니까? (나는 매우 광범위하게 검토 한 결과.)

SSH는 오류 제공 :

". 표준 입력이 터미널이 아니기 때문에 할당되지 않습니다 의사 터미널"을

답변

3

기본 'Cygwin Bash 쉘'을 사용하고 있습니까? 이 cmdlet은 Windows cmd 셸에서 실행되며 끌어서 화면의 크기를 조정할 수 없습니다. 이 셸은 기본 Windows 구성 요소 때문에 끔찍하게 손상되었습니다. rxvt과 같은 것을 사용하거나 퍼티 포크 중 하나를 사용해보십시오.

이것이 모두 설정되면 문제는 termcap 문제 일 수 있습니다. 어떤 사람들은 Cygwin TERM 변수를 'xterm'으로 설정합니다. 왜냐하면 많은 원격 컴퓨터에 rxvt-cygwin-native 같은 termcap이 설치되어 있지 않기 때문입니다. 이를 국지적으로 대체하면 일련의 터미널 조작을 시도하는 프로그램에 문제점이 발생합니다.

~/.bash_profile에서 터미널을 다음과 같이 설정할 수 있습니다. export TERM=rxvt-cygwin-native

rxvt에 대한 자세한 내용은 rxvt install guide and tips을 참조하십시오.

+0

.emacs를 통해 rxvt를 설정하는 데 문제가 있습니다 ... '-i는 옵션이 아닙니다.'라는 말과 가능한 옵션을 나열합니다. TERM 변수의 기본 설정은 무엇입니까? 온라인으로 소스가 CYGWIN으로 설정되어 있음을 알았지 만 이것이 배치 파일인지 또는 다른 숨겨진 파일인지는 알 수 없습니까? 이맥스에서 쉘을 얻기가 어렵다. 그래도 의견을 많이 주셔서 감사합니다! – mduvall

1

SSH also gives the error:

"Pseudo-terminal will not be allocated because stdin is not a terminal."

이 NTEmacs (의 Cygwin에서 NOT 이맥스)에서이 문제를 해결하기 위해, 나는 다음과 같은 한 : fakecygpty.exe으로 fakecygpty.c를 컴파일하는 데 사용합니다

  1. Cygwin에서의 gcc를 설치
  2. 실행 fakecygpty ssh my_server 이맥스 쉘에 그냥 ssh my_server 대신에 (가장 쉬운 fakecygpty가 당신의 경로에 있다면).

이 내용은 cmd, cygwin bash 및 git bash를 실행하는 *shell*에서 테스트되었으며 모두 정상적으로 작동합니다. 나의 이해는 fakecygpty.c이다. NTEmacs를 유효한 cygwin tty로 제시하면 ssh는 그와 대화하려고한다. More information about fakecygpty and SSH with ntemacs.


또한 초기화이를 추가하여 제대로 SSH를 통해 NTEmacs 편집 파일을 만들 수 있습니다.el :

(eval-after-load "tramp" 
    '(progn 
    (add-to-list 'tramp-methods 
        (mapcar 
        (lambda (x) 
        (cond 
         ((equal x "sshx") "cygssh") 
         ((eq (car x) 'tramp-login-program) (list 'tramp-login-program "fakecygpty ssh")) 
         (t x))) 
        (assoc "sshx" tramp-methods))) 
    (setq tramp-default-method "cygssh"))) 

또한 ntemacs의 ssh를 통해 파일을 편집하려면 내 Tramp를 2.2.7로 업데이트해야합니다.

누군가가 문제를 해결할 수 있기를 바랍니다. :)