vim – 如何使用MIT-Scheme启动REPL for slimv

前端之家收集整理的这篇文章主要介绍了vim – 如何使用MIT-Scheme启动REPL for slimv前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的操作系统是Debian Squeeze。这是vim版本:

VIM – Vi IMproved 7.2(2008年8月9日,编译2010年7月12日02:29:33)

我在http://kovisoft.bitbucket.org/tutorial.html读了一本教程,并尝试启动麻省理工学院的REPL。不幸的是,我没有开始。

当我按“c”时,它开始一个终端窗口加载mit-scheme。 vim的REPL缓冲区中没有显示任何内容。终端中显示一些错误

Listening on port: 4005
;netcat: "4005: inverse host lookup Failed: Unknown host"
;To continue,call RESTART with an option number:
; (RESTART 1) => Return to read-eval-print level 1.

2 error>

我读了源代码并修复了一些bug(关于netcat的参数等等),这里是diff文件

*** /home/gaussfrank/slimv/slime/contrib/swank-mit-scheme.scm   2012-02-02 16:41:58.357463955 +0800
--- swank-mit-scheme.scm    2012-02-06 22:30:42.929212874 +0800
***************
*** 113,126 ****

  (define (netcat port)
    (let* ((sh (os/shell-file-name))
!    (cmd (format #f "exec netcat -v -q 0 -l ~a 2>&1" port))
     (netcat (start-pipe-subprocess sh 
                    (vector sh "-c" cmd)
                    scheme-subprocess-environment)))
      (list netcat port)))

  (define (netcat-accept nc)
!   (let* ((rx "^Connection from .+ port .+ accepted$")
     (line (read-line (subprocess-input-port nc)))
     (match (re-string-match rx line)))
      (cond ((not match) (error "netcat:" line))
--- 113,126 ----

  (define (netcat port)
    (let* ((sh (os/shell-file-name))
!    (cmd (format #f "exec netcat -v -q 0 -l -p ~a 2>&1" port))
     (netcat (start-pipe-subprocess sh 
                    (vector sh "-c" cmd)
                    scheme-subprocess-environment)))
      (list netcat port)))

  (define (netcat-accept nc)
!   (let* ((rx "^listening on.*")
     (line (read-line (subprocess-input-port nc)))
     (match (re-string-match rx line)))
      (cond ((not match) (error "netcat:" line))

我重试了一些新的问题。

;The object #f,passed as the second argument to integer-add,is not the correct type.
;To continue,call RESTART with an option number:
; (RESTART 4) => Specify an argument to use in its place.
; (RESTART 3) => Return to SLIME top-level.
; (RESTART 2) => Close connection.
; (RESTART 1) => Return to read-eval-print level 1.

这是日志文件(swank.log)

[---Sent---] 0.21
(:emacs-rex (swank:connection-info) nil t 1)

[---Sent---] 16.11
(:emacs-rex (swank:swank-require 'swank-fuzzy) nil t 2)

这是包:

8   0.739991    127.0.0.1   127.0.0.1   TCP 50732 > pxc-pin [PSH,ACK] Seq=1 Ack=1 Win=32792 Len=51 TSV=1451459 TSER=1451459
0000   00 00 00 00 00 00 00 00 00 00 00 00 08 00 45 00  ..............E.
0010   00 67 91 53 40 00 40 06 ab 3b 7f 00 00 01 7f 00  .g.S@.@..;......
0020   00 01 c6 2c 0f a5 f9 57 b4 93 fc 40 7f 85 80 18  ...,...W...@....
0030   10 03 fe 5b 00 00 01 01 08 0a 00 16 25 c3 00 16  ...[........%...
0040   25 c3 30 30 30 30 32 64 28 3a 65 6d 61 63 73 2d  %.00002d(:emacs-
0050   72 65 78 20 28 73 77 61 6e 6b 3a 63 6f 6e 6e 65  rex (swank:conne
0060   63 74 69 6f 6e 2d 69 6e 66 6f 29 20 6e 69 6c 20  ction-info) nil 
0070   74 20 31 29 0a                                   t 1).

9   0.740009    127.0.0.1   127.0.0.1   TCP pxc-pin > 50732 [ACK] Seq=1 Ack=52 Win=32768 Len=0 TSV=1451459 TSER=1451459
0000   00 00 00 00 00 00 00 00 00 00 00 00 08 00 45 00  ..............E.
0010   00 34 5a 46 40 00 40 06 e2 7b 7f 00 00 01 7f 00  .4ZF@.@..{......
0020   00 01 0f a5 c6 2c fc 40 7f 85 f9 57 b4 c6 80 10  .....,.@...W....
0030   10 00 fe 28 00 00 01 01 08 0a 00 16 25 c3 00 16  ...(........%...
0040   25 c3                                            %.
这是一个已知的问题。我在我的git repo中有 a patched version的Slimv,它修复了这个问题,还有很多其他的。

请注意,很久以前,我使用了Slimv,所以我不能从头顶回忆起我做出的确切变化。我只在OS X上测试过,所以YMMV。

原文链接:https://www.f2er.com/bash/388130.html

猜你在找的Bash相关文章