【问题标题】:Programming Scheme(Racket) with VIM - How to get started使用 VIM 的编程方案(Racket) - 如何开始
【发布时间】:2011-07-18 04:51:33
【问题描述】:

最近,我开始在 DrRacket 中编写 Racket(以前的 Scheme)。 我很快就开始怀念 DrRacket 中 VIM 的所有功能,所以我想 使用 VIM 进行我的方案(球拍)编程。

我知道 Emacs 可能是密集 lisp 编程的最佳选择,但所有 我想要的是编写一个方案(球拍)文件检查语法,然后运行它。

不幸的是,我不知道如何在命令行中调用“球拍” 在一个文件上让它做和 DrRacket 一样的事情。

我正在运行 Ubuntu 10.10 Maverick Meerkat,VIM 7.3,我下载并 从官网安装 Racket。

非常感谢您帮助入门。

【问题讨论】:

    标签: vim lisp scheme racket


    【解决方案1】:

    如果您只想在命令行上将文件加载到 Racket 并运行它,我认为这应该可以:

    $ racket -f file.scm -i
    

    -i 选项将使您留在 REPL 以测试您在 file.scm 中的代码。

    不过,您可能想看看这篇博文:

    http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/

    您可以设置运行命令行 Racket 的 GNU 屏幕会话,并从 Vim 向其发送 s 表达式。有一个 Vimscript 的链接可以自动完成。我在 mit-scheme 中使用了一段时间,它相当有效。不过,它不如 SLIME 或 DrRacket 强大。我刚刚测试了 OS X 上描述的步骤,它适用于命令行球拍,它应该适用于 Ubuntu,这就是我第一次使用这种方法时使用的。

    您可能还想看看这个:

    http://evalwhen.com/scmindent/index.html

    ...其中包含一些关于在 Vim 中为 Lisp 和 Scheme 代码更好地缩进的信息。

    我最终改用 Emacs,但不要让 Vim 的仇恨者让你失望。 Paul Graham 应该使用 vi,他一定是最杰出的 5 位 Lisp 程序员之一。

    http://paul.graham.usesthis.com/

    【讨论】:

    • 感谢您的提示,但在 vim 中使用球拍 -f 文件 -i 命令运行给了我:对未定义标识符的引用:check-expect 是否仅检查预期 DrRacket?
    • 好的,谢谢我想出添加#lang方案(需要htdp/testing)(检查期望1 2)(生成报告)
    • 对不起,我没有想到 #lang 说明符,我通常在 R5RS 模式下使用 Racket。很高兴你让它工作了!
    • evalwhen 链接显示日本垃圾邮件页面。
    【解决方案2】:

    大约一周前,SLIMV(SLIME for Vim)支持 Racket。 SLIMV 被普遍认为是目前 Vim 最成熟的 Lisp 环境。

    【讨论】:

      【解决方案3】:

      有几个附加组件可以使在 Racket 中的编码更能满足 Vim 的要求。

      • Vim 的 lisp 模式 (set lisp) -- 改进了缩进和 w/e/b 跳字的一些基础知识。
      • vim-racket -- 用于函数和语法的大量 vim 语法识别
      • syntastic -- 在保存时识别错误(vim-racket 设置 makeprg 使其工作)
      • Rainbow Parentheses -- 设置您自己的括号颜色以获得最大对比度!
      • vim-slime -- 与 Tmux 一起使用将 Vim 连接到 Racket REPL
      • surround -- 用括号包裹表单和元素
      • vim-sexp for normal people
      • Molokai color scheme -- 高对比度
      • VROD* -- 基于K的 Vim 文档和 Racket 函数的自动完成
      • REPTL* -- 非常简单的连续 rackunit 测试运行器

      我更喜欢 slime 而不是 slimv,因为它很简单。

      如果您使用Vundle,这里是安装提到的大多数附加组件的方法:

      Plugin 'tpope/vim-surround.git'
      Plugin 'kien/rainbow_parentheses.vim'
      Plugin 'scrooloose/syntastic.git'
      Plugin 'MicahElliott/vrod'
      Plugin 'guns/vim-sexp'
      Plugin 'tpope/vim-sexp-mappings-for-regular-people'
      Plugin 'wlangstroth/vim-racket'
      Plugin 'tomasr/molokai.git'
      

      将它们放入您的~/.vimrc,然后调用安装:

      % vim +PluginInstall +qall
      

      这是展示其中大部分内容的屏幕截图:

      (*披露:我写了 VROD 和 REPTL,它们还不成熟)

      另外,here is a related blog post 描述了 Vim/SICP 设置。

      【讨论】:

      • Paredit 对于结构化编辑和确保没有不平衡的括号也很有用。 Slimv 包括 paredit;这是独立版本。
      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 2010-12-14
      • 2014-05-09
      • 1970-01-01
      • 2012-06-18
      • 2015-10-02
      • 2014-02-16
      • 2013-10-20
      相关资源
      最近更新 更多