Emacstypeoverskeleton-pair-insert-maybe在Eclipse中,编辑Java代码,输入open-paren,会得到一对parens。如果我然后“输入”第二个括号,它不会插入额外的括号。我如何在emacs中获取它?Eclipse编辑器非常智能,当我输入close-paren时,我知道我刚刚完成了我的工作。光标越过闭括号。如果我然后键入一个分号,同样的事情:它只是覆盖了分号,我没有得到两个分号。在emacs、java模式或csharp模式下,如果我将open-paren绑定到skeleton-pair-insert-maybe,我会得到一个openparen对,这很好。但是,如果我“通过”收盘价,我将获得两次收盘价。有没有办法教emacs在插入前一个骨架对后不要插入右括号?如果这是可能的,一些类似的智能如何避免分号加倍?我问的是括号,但这同样适用于双引号、花括号、方括号等。任何插入骨架的东西都可以插入。这篇文章展示了如何做你想做的事。作为奖励,它还展示了如何设置它,以便如果您在开始字符后立即退格,它也会删除光标后的结束字符。更新:自从我发布这个答案后,我发现了Autopair,这是一个非常完美的系统。我一直使用它并且喜欢它。总结一下我所做的,我看了这篇文章并弄明白了。我最终得到的更简单,因为我没有他的额外要求。我使用了这两个新定义:(defvarcheeso-skeleton-pair-alist'((?).?()(?].?[)(?".?")))(defuncheeso-skeleton-pair-end(arg)“如果字符是结尾则跳过它,否则插入它。”(interactive"*p")(let((charlast-command-char))(if(and(assqcharcheeso-skeleton-pair-alist)(eqchar(following-char)))(forward-char)(self-insert-command(prefix-numeric-valuearg)))))然后在我的java-mode-hook中,我从Thiswaybinds开始close-paren和close-bracket:(local-set-key(kbd")")'cheeso-skeleton-pair-end)(local-set-key(kbd"]")'cheeso-skeleton-pair-end)我使用了paredit-mode,它可以做到这一点以及更多。ParEdit听起来像是可以处理您需要的括号部分,但请注意它是为CommonLisp和Scheme设计的。SteveYegge提到了JDEEforemacsJavadevelopment,但我不能从个人经验讲,而且我找不到任何关于结构化编辑的文档。以上就是C#学习教程分享的全部内容:Emacstypeoverskeleton-pair-insert-maybe。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
