我尽量将手指放在本排。

输入所有括号让我远离那里。

我使用 Emacs;括号本身没有问题,我对它们很满意。而且我不喜欢自动为我输入它们的模式。

我考虑过将方括号重新映射到圆括号,反之亦然。这是一个好主意吗?其他人都做什么?

有帮助吗?

解决方案

我个人推荐致命的组合 Emacs, 粘液 & 帕雷迪特网站Paredit 允许您在 sexp 级别上伪语义地编辑 LISP 代码,这使得括号几乎完全消失。您可以像简单的单词一样移动 sexp,甚至只需按几下按键即可改变它们。还有一种小模式称为 红脚鹬 它与 Paredit 结合使用并提供更多功能。

考虑简单的这些例子(| 是光标的位置):

(foo bar (baz| quux) zot) + C-( => (foo (bar baz| quux) zot)
(foo (bar |baz) quux zot) + C-) => (foo (bar |baz quux) zot)

(foo (bar baz |quux) zot) + C-{ => (foo bar (baz |quux) zot)
(foo (bar |baz quux) zot) + C-} => (foo (bar |baz) quux zot)

我曾经做过一些认真的 Common Lisp 编程,事实证明 paredit 对我来说是无价的。如果没有我的工具箱,我什至无法想象编写重要的 LISP 代码。毕竟事情本来就该如此;你永远不必计算或匹配你的括号......一旦你掌握了Paredit,括号就会从你眼前消失。

将 [] 重新映射到 () 会有所帮助,但在开始使用 Paredit 后您将不再关心。

请随意使用 我的 dot-emacs 中的 LISP 特定部分.

其他提示

通过许多非美国键盘布局,输入方括号或花括号甚至比打字括号更麻烦,反正,这使得在大多数语言非常strainful编程,因此认为自己是幸运的。 ;)

至于我,我使用了程序员友好非标准键盘布局,让我通过键入括号[超] -j和[超] -k。

我把我的手指离开家钥匙......

我有脚踏板。 LeftFoot =开括号,RightFoot =密切括号。

好了,我不知道,但我不使用Lisp的。它似乎并不像一个坏主意,但。

你能想象Lisp上所使用缩进而不是括号的变化? (从Python规范采取页)

我试图在Emacs重新映射,但它创造了新的问题:假设您在通过SSH终端窗口中编辑和粘贴片段到窗口;然后括号和括号被换在你的粘贴,不只是你的打字。如果你试试这个,重新映射在你的系统中一个较低的水平,如xmodmap的。

(当然,很明显的其他问题是使用其他计算机没有你的重新映射。这是令人讨厌太,虽然可以忍受的。)

我重新映射[]至()使用xmodmap和喜欢。这是一个有点怪异习惯在使用[]语言编写代码,但像任何改变,你要去适应它。在Lisp中具有未移位的括号比不具有其他语言的未移位括号更好,所以它的工作原理进行。

总之,这里是我的美国键盘必要xmodmap的咒语:

!! swap () and []
keycode  18 = 9 bracketleft
keycode  19 = 0 bracketright
keycode  34 = parenleft braceleft
keycode  35 = parenright braceright

“......这么多parenethesis”

我做的第一件事就是绑定“(”键序列“(” +“)” +右(),所以我的括号自动平衡,留下一半多离开编写新的代码时,键入

您也希望有一个方便的方式来导航出一个括号 - 结合C-]到序列搜索(“)”)+右()。创作变得更短了,因为你并不需要采取手离开初始位置 - 只需键入C-]每当你完成一个S-EXPR

接下来我所做的只是结合一个键是推动现有项目到当前列表中的子程序...因此,如果//是光标的位置,则该命令将改变:

(if (< //) (+ x 1) 
    (x) 
  (y))

(if (< (+ x 1) //)
    (x) 
  (y))

有效推动一个项目从右侧到当前列表 - 非常有用的用于编辑现有的代码。序列“(”,“<”,CS-],空间,“2”增加了“小于2的比较”,以现有的表达。与C-结合],这可以让你从现有的非常快速地构建新的表达。

@jamesnvc, 我也没多想绑定()为[]键...我要尝试的是,THX!

我得把我的手指离开家行到达所有其他移多家运营商,所以我从来没有想过这个问题了。

和一旦键入一个左括号,电括号给你的权利。

如果使用除方括号更括号,通过各种手段,重映射了。我看不出它如何能带来任何比,也就是说更多的问题,一个左撇子交换了鼠标按键。

当我在写代码,我通常花更多的时间思考和阅读我的代码,比我打字吧。我试过几次,在过去切换到德沃夏克键盘布局,但我缺乏明显动机,因为我可以输入比我能想到的要快得多。编程语言的语法是一个类似的问题 - 只要我能不离开键盘(即使用鼠标会很糟糕),我很高兴键入代码

大多数情况下,我只需要输入他们,但偶尔,我用M-(和M-)(尤其是当我加入了一个让结合“中后期”),附上表达式的相关n已接收。

我也改变了我(德沃夏克)键盘布局(通过xmodmap的)切换的方括号(“[]”)和括号,与paredit-mode结合(这确实需要一些时间来适应)。

我用paredit和对模式程序包,但对于快速括号打字我使用电点 - 短划线到上一个5毫秒的延迟代替在()一个双周期(如果I型慢慢我得到两个点然后)。这是一个奇妙的包(我砍死了一下我的个人喜好,因为我与Dvorak键盘打字,我用斜杠替换破折号键(//不是口齿不清那么常见))。

要避免括号的一塌糊涂,我添加了一个名为“大亮点,括号我的工具集包,并在一般SEXP grabbings或文字导航最大的效率,我也用vimpulse(因为我是一个Vim的瘾君子)。

DrScheme 具有用于括号和方括号默认翻转击键。它也有一个特征,其中它神奇地猜测你指两个中的哪一个,所以你很少达到移-9。

嘎嘎具有相似的功能,将这些DrScheme的。

DivaScheme (我的编辑),是完全不同的东西。它编辑在SEXP水平,使得括号不再的方式。

重新绑定大写锁定到“(”,并且具有编辑器自动插入件“)”你。

(这也有助于对其他语言有很多括号,例如HTML ...)

我使用 Vim vim 性别vim-sexp-mappings-for-regular-people 然后映射了 <leader>u 让我在新的正常模式下 (.

map <leader>u i(

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top