当前位置: 首页 > 知识库问答 >
问题:

如何在VS代码中每N个字符后放置一个光标?

史意致
2023-03-14

例如,我在VS Code中的一行中有一行很长的文本(让我们假设下面给出的示例很长)。

0xffffffffeeeeeeee02020202aaaaaaaa

起初,我将光标放在字符0x之后。(在下面的示例中,光标由|字符表示)

0x|ffffffffeeeeeeee02020202aaaaaaaa

然后,我想在当前光标的每N个字符后添加更多的光标。在这种情况下,N等于8,我想这样做两次,再添加两个光标,如下面的示例所示。

0x|ffffffff|eeeeeeee|02020202aaaaaaaa

因此,在我按下键盘上的以下键序列后,在这种情况下,这些键序列是,(空格)0x,我应该能够得到这些最终结果。

0x, 0x|ffffffff, 0x|eeeeeeee, 0x|02020202aaaaaaaa

在我取消选择光标后,我应该得到这个

0x, 0xffffffff, 0xeeeeeeee, 0x02020202aaaaaaaa

这可以在VS代码中做到吗?

共有2个答案

赵骏奇
2023-03-14

您可以使用扩展“选择依据”

它有一个通过键盘添加新光标的命令

json prettyprint-override">  {
    "key": "ctrl+i ctrl+alt+right", // or any other key combo
    "when": "editorTextFocus",
    "command": "selectby.addNewSelection",
    "args": {"offset": 8}
  }

现在偏移量是硬编码的,但我会添加一个选项来询问用户偏移量。

上下文切换的可能性已经在起作用了。我必须更新自述文件。

钮出野
2023-03-14

有一个简单的正则表达式可以做你想做的事:

找到:^0x|(.{8})(?!$)

但是您必须启用在选择中查找选项并在输入后自己触发Select All Matches命令。

或者使用诸如multi命令和此键绑定之类的宏扩展来自动执行:

{
  "key": "alt+p",
  "command": "extension.multiCommand.execute",
  "args": {
          "sequence": [
        {
          "command": "editor.actions.findWithArgs",
          "args": {
            "findInSelection": true,
            "isRegex": true,
            "searchString": "^0x|.{8}",
          }
        },
        "editor.action.selectAllMatches",
        "cursorRight"
      ]
  },
}

必须选择最后一个光标所在的位置,然后触发宏。

>

  • 由于实现不稳定,您必须从“查找小部件”中禁用的“在所选内容中查找”选项开始。我还没有找到解决这个问题的方法。

    设置编辑器

    这是没有扩展的纯正则表达式方法:

    1. 输入 ^0x|(.{8})(?!$) 在启用了正则表达式选项的“查找小部件”中。

    ^0x您最终想要在其后面放置光标的字符串的第一部分。

    (.{8})(?! $)选择每个8个字符的块,但不选择最后一个——这就是为什么行尾有一个负前瞻(?! $)——所以最后8个字符不匹配。别担心,根据需要,最后8个字符前面会有一个光标。(.{8})实际上不需要在捕获组中,只是看得更清楚。

    选择要匹配的所有文本:0xffffffffeeeeeeee。在那里停止选择-无论您想要最后一个光标在哪里。

    通过AltL启用“查找小部件”中的“在选定内容中查找”选项。

    < kbd>Alt Enter选择与< code >在选择中查找选项相关的所有查找匹配项:< code > editor . action . select highlights

    步骤(4)将选择您的匹配项 - 您应该有4作为上述字符串。但是您不希望选择匹配项,而只想在每个匹配项的开头添加一个光标,因此请执行步骤(5):

    右箭头:这将取消每个选择,在每个选择的右端有一个光标。

    类型。

  •  类似资料:
    • 问题内容: 我有一个字串:“敏捷的棕色狐狸跳过了懒狗。” 我想使用javascript(可能是jQuery)每 n个 字符插入一个字符。例如,我想打电话: 目标是使用此函数将&shy插入长字符串以允许它们进行换行。也许有人知道更好的方法? 问题答案:

    • 问题内容: 我需要在Python中生成一个包含n个字符的字符串。使用现有的Python库是否可以实现这一目标?例如,我需要一个由10个字母组成的字符串: 问题答案: 要将同一字母重复10次: 而且,如果您想要更复杂的东西,例如随机的小写字母,它仍然只是一行代码(不计算import语句并定义):

    • 问题内容: 是否可以每个字符分割一个字符串? 例如,假设我有一个包含以下内容的字符串: 我怎样才能使它看起来像这样: 问题答案: 192 为了完整起见,你可以使用正则表达式执行此操作: 对于字符的奇数,你可以执行以下操作: 你还可以执行以下操作,以简化较长块的正则表达式: re.finditer如果字符串很长,则可以使用它逐块生成。

    • 问题内容: 今天早些时候,我需要一次遍历2个字符的字符串,以解析格式如下的字符串(有一些额外的字母)。 我最终完成了这个工作,但是看起来很丑。我最终评论了它在做什么,因为它感觉不太明显。几乎看起来像是pythonic,但并非完全如此。 有一些更好/更清洁的方法可以做到这一点吗? 问题答案: 邓诺关于清洁剂,但还有另一种选择: 无副本版本:

    • 在Visual Studio代码中,什么是键盘快捷键“导航回最后一个光标位置”?

    • 问题内容: 目的: 在Golang中的字符串中每x个字符插入一个字符 输入: 预期产量: 尝试次数 尝试一次 结果是: 尝试两次 计算字符数 对于循环 如果X = 5,则插入一个 尝试三 扫描结合加入 问题 目前尝试两次和三次不包含代码段的原因是,我仍在思考应该使用哪种方法在Golang中的字符串中每X个字符插入一个字符。 问题答案: https://play.golang.org/p/HEGbe