gpt4 book ai didi

java - Intellij Java/Scala : Delete to delimiter?(如 Emacs Paredit)

转载 作者:行者123 更新时间:2023-12-02 09:09:05 25 4
gpt4 key购买 nike

Emacs“paredit”模式的一个很棒的功能可以与类似 Lisp 以及 Java/Scala 等其他语言一起使用,即只需按 Ctrl-k(kill),它就会智能地删除文本,直到适当的分隔符,可以是右引号,或右大括号/括号/方括号。它本质上会删除一些东西,同时仍然保持代码在语法上有效,即它将删除正确数量的右括号/大括号等。

Intellij IDEA 中有这样的操作或键盘快捷键吗?或者我如何定义一个宏来执行此操作?

最佳答案

我有一个几乎有效的解决方案:记录宏序列(Mac 键绑定(bind)):

  1. 展开选择(Alt Up)
  2. 展开选择(Alt Up)
  3. 向右选择(Shift RightArrow)
  4. 剪切所选内容 (Cmd X)

然后我将此宏绑定(bind)到 Ctrl-K。它效果很好,例如(竖线是调用时的插入符号位置):


List( "first", "second", "third |string", "fourth") => List( "first", "second", "third ", "fourth")<br/>
{100, 200, {300|, 400, 500}, 20} => {100, 200, {300}, 20}

不太按照我想要的方式工作的情况是当我使用括号时:


(1, 2, (3, |4, 5), 6, 7, 8) => (1, 2, (3, , 6, 7, 8)

请注意,它删除了封闭的右括号,这是因为 Expand-Selection 包含封闭的括号。如果封闭表达式是字符串或带有大括号,则 Expand-Selection 不包含右侧引号或大括号。

如果我知道如何在不包含括号的情况下进行扩展选择,那么这将是完美的,但我可以接受我现在所拥有的。

关于java - Intellij Java/Scala : Delete to delimiter?(如 Emacs Paredit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com