我一直遇到很多关于emacs的问题,并试图让终端使用:
M-x term
我安装了cygwin并修复了我的.emacs以包含路径:
(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)
然而,现在当我启动终端时,它似乎只给出一个空白屏幕并“挂起”
当我发布时:
M-x shell
确实启动了bash shell并且在文件目录中飞行是可以的(使用cd,ls,cp,rm等)。但是,当我尝试打开一个Python shell时,它再次动手,我输入...并且shell崩溃了。我正在做什么或者有人可以指导我在线解决方案有什么重大错误吗? (我看得非常广泛。)
SSH也会出错:
“由于stdin不是终端,因此不会分配伪终端。”
答案 0 :(得分:3)
您使用默认的'Cygwin Bash Shell'吗?这是在Windows cmd shell中启动的,您无法拖动以调整屏幕大小。由于底层的Windows组件,这个shell可怕地被破坏了。尝试使用 rxvt 或其中一个腻子叉。
如果设置完毕,那么问题很可能是一个问题。有些人将他们的Cygwin TERM变量设置为'xterm',因为许多远程计算机没有为rxvt-cygwin-native
之类的东西安装termcaps。在本地覆盖它将导致尝试一系列终端操作的程序出现问题。
在〜/ .bash_profile中,您可以将终端设置为以下内容。 export TERM=rxvt-cygwin-native
有关rxvt的更多信息,请参阅我的rxvt install guide and tips。
答案 1 :(得分:1)
SSH也会出错:
“不会分配伪终端,因为stdin不是 终端“。
为了解决NTEmacs中的这个问题(不是cygwin的emacs),我做了以下事情:
fakecygpty ssh my_server
而不仅仅是ssh my_server
(如果您的路径中有fakecygpty,则最简单)。 我在*shell*
运行cmd,cygwin bash和git bash中对此进行了测试,它们都运行正常。我的理解是,fakecygpty.c将NTEmacs作为一个有效的cygwin tty,以便ssh愿意与它交谈。 More information about fakecygpty and SSH with ntemacs.
您还可以通过将此文件添加到init.el来使NTEmacs正确编辑文件:
(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")))
我还需要将Tramp更新为2.2.7才能从ntemacs通过ssh编辑文件。
希望这可以节省一些人的麻烦。 :)