PLT计划(球拍)

时间:2011-04-10 19:29:04

标签: racket

有没有人知道如何或是否可以在drScheme / Racket中自动完成括号

2 个答案:

答案 0 :(得分:4)

DrRacket不会自动完成关闭括号(我假设你正在询问的是),但它会插入正确的paren形状 - 所以你可以快速点击]]]几次直到你关闭了正确的水平。

但是作为一个旁注,如果你保持括号(所有形状)和双引号等在所有时间保持平衡,那么很多更容易使用任何sexpr语言(或实际上任何其他语言) 。 DrRacket通过使Alt - (插入一对parens并将光标留在中间使得这很容易。 Emacs也是这样做的,但DrRacket有类似方括号,花括号和双引号的键。这种工作方式非常有效,因为你从不需要计算parens甚至看高光。它也很容易处理代码,因为同样的代码保持不变 - 只要代码缩进正确(这意味着parens会淡化到你没有意识到的东西)。

答案 1 :(得分:1)

我同意Eli的观点,在任何时候都能更容易保持平衡,并且想补充一点,它很容易实现内置行为,并从那里开始定制您想要的所有内容。在DrRacket中通过"编辑/键绑定/添加用户定义的键绑定"你可以添加一个像下面这样的文件来添加绑定到"控制 - #"在光标处插入一对parens(如果有的话,在当前选择周围)。之后你必须重新启动DrRacket。

#lang s-exp framework/keybinding-lang
(keybinding "c:#"
        (λ (text evt)
          (define a (send text get-start-position))
          (define b (send text get-end-position))
          (send text insert #\( a)
          (send text insert #\) (+ b 1))
          (send text move-position 'left)))