【问题标题】:Replace matching brackets for parenthesis vscode替换括号的匹配括号 vscode
【发布时间】:2018-07-11 19:34:56
【问题描述】:

有没有办法在 vscode 中快速替换匹配括号以匹配括号(或任何其他开始/结束字符)?

类似于 ctrl+d 但用于匹配括号、括号等。

我目前正在为箭头函数替换传统的 JavaScript 函数定义(redux 动作创建者),我也在 eslint 中使用 airbnb 规则,其中规则箭头体样式需要在 @987654322 之后立即移动返回值@ 并且因为大多数动作创建者返回一个对象文字,它需要用括号括起来,这就是为什么我需要一种机制来简化替换。

我正在努力改变。

export function hideServerErrors() {
 return {
  type: HIDE_SERVER_ERRORS,
 };
}

export const hideServerErrors = () => ({
 type: HIDE_SERVER_ERRORS,
});

【问题讨论】:

标签: javascript visual-studio-code keyboard-shortcuts


【解决方案1】:

对于你的具体例子,试试这个:

首先,将此命令绑定到某个键弦,例如

{
    "key": "ctrl+alt+]",
    "command": "editor.action.selectToBracket"
}

然后,将光标放在第一个括号内(第一行代码的末尾),触发命令,例如,Ctrl-Alt- ] 在我的示例键绑定中。输入你的 ( 你会得到:

export function hideServerErrors() ({
  return {
   type: HIDE_SERVER_ERRORS,
  };
 })

我认为这就是您想要通过这一步完成的全部工作。鉴于您有几件事要更改,sn-p 可能是一次进行所有更改的方法。

【讨论】:

    【解决方案2】:

    我认为Quick and Simple Text Selection extension,如Smart Select 的此提示中所引用的,可能会有所帮助。

    安装扩展程序后,如果您想替换 {(

    1. 单击外部{s 内的某处
    2. 使用 Ctrl + k, Shift + { 选择整个内部内容
    3. Ctrl + x 剪切内容
    4. Ctrl + k, Shift + } 抓取大括号
    5. Backspace 删除大括号
    6. 添加打开/关闭括号(假设您启用了添加关闭括号的默认选项)
    7. Ctrl + v 粘贴内脏。

    当我尝试这个时,它可以工作,但格式很奇怪,所以可能不是我们正在寻找的......

    在您的情况下,您似乎想用括号包装 { type: HIDE_SERVER_ERRORS, },这更容易 - 单击内部,使用 Ctrl + k , Shift + } 获取包含的括号,然后 ( 将其包装在括号中...或混合匹配根据需要...

    (我认为 Smart Select 可以自己做同样的事情,但需要更多的机制/步骤/组合...)

    不是 100% 方便,但在一些更复杂的场景中,这应该比自己尝试选择/匹配大括号要好得多。

    【讨论】:

    • ctrl + k, shift + }命令怎么叫?与该键绑定最接近的默认命令是 Fold Recursively with Ctrl+k, Ctrl+Shift+{
    • "安装了扩展程序"...没有扩展程序,您必须使用某些版本的 Smart Select (Shift+Alt+Right Arrow)
    【解决方案3】:

    您也可以使用正则表达式:
    查找:funcName\('([\s\S\r]*?)'\)
    替换:funcName['$1']
    它将把 funcName('test') 替换为 funcname['test']

    【讨论】:

    • 我测试得很快,它只适用于内联括号,不是吗?
    • “内联”是什么意思?你的意思是在一行?我认为您可以更改正则表达式以在单独的行中支持括号。但我不知道怎么做。 @Rodrirokr
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多