使用 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如何组合环境的变量和值列表
我需要安装 PLT Racket 的帮助,我将 Racket 文件夹移到 Applications 但我不知道如何在终端中使用 raco 命令