使用 VIM 的编程方案(Racket) - 如何开始

Posted

技术标签:

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

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

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

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

我正在运行 Ubuntu 10.10 Maverick Meerkat,VIM 7.3,我下载并 从官网安装 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;这是独立版本。

以上是关于使用 VIM 的编程方案(Racket) - 如何开始的主要内容,如果未能解决你的问题,请参考以下文章

Racket(lisp 编程语言)中的 [ ] 和 ( ) 括号有啥区别?

Racket Lang - Scheme如何组合环境的变量和值列表

如何使用 Emacs 运行方案?

Racket里的方括号

我需要安装 PLT Racket 的帮助,我将 Racket 文件夹移到 Applications 但我不知道如何在终端中使用 raco 命令

The Racket Guide