有没有人知道如何或是否可以在drScheme / Racket中自动完成括号
答案 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)))