【问题标题】:VSCode copy and paste 1 line without newline character being prependedVSCode复制并粘贴1行而不添加换行符
【发布时间】:2019-05-16 09:50:42
【问题描述】:

在 VScode 中,当您复制一行文本然后将光标放在引号中间并按 Ctrl+V 时,它会将新行粘贴到您想要的位置上方。

在 IntelliJ 和 PyCharm 中,当您使用 Ctrl+C 复制一行代码而不选择任何文本时,它们会智能地删除字符串末尾的 \n 字符,而该字符串位于内存中。因此,当您将其粘贴在引号中间时,您将获得所需的行为。

由于 VS 团队不太可能很快解决这个问题,我想知道是否有人有宏。

https://github.com/Microsoft/vscode/issues/61840

【问题讨论】:

标签: visual-studio-code pycharm intellij-13


【解决方案1】:

组合键可以帮助您:

  1. 首页
  2. Shift + 结束
  3. Ctrl + Alt + C

但由于您只想使用 Ctrl + Alt + C 来执行此操作,因此您可以安装名为 macros 的扩展程序来制作宏,记录了多个组合键。

通过将它们添加到您的 settings.json 来创建您自己的自定义宏:

"macros": {
    "copyWithoutNewLine": [
        "cursorHome",
        "cursorEndSelect",
        "editor.action.clipboardCopyAction",
        "cancelSelection",
        "cursorUndo",
        "cursorUndo",
        "cursorUndo"
    ]
}

创建的宏可以有一个自定义名称,在本例中为 copyWithoutNewLine。这个宏执行上述所有命令来复制行。

创建宏后,需要添加到keybindings.json才能运行:

{
    "key": "ctrl+alt+c",
    "command": "macros.copyWithoutNewLine",
    "when": "editorTextFocus && !editorHasSelection"
}

Ctrl + Alt + C组合键时,复制不换行,粘贴即可随心所欲。

【讨论】:

  • 不客气 :) 。只需添加,您可以添加任何自定义键组合,不必是 ctrl + alt + c。任何不覆盖已定义组合的内容。
  • 是的。我将它映射到 shift+ctrl+c 因为它更符合人体工程学:-)
  • 您可以通过绑定到ctrl+c使其行为与其他编辑器完全一样,仅当没有选择文本时:{ "key": "ctrl+c", "command": "macros.copyWithoutNewLine", "when": "editorTextFocus && !editorHasSelection" },
猜你喜欢
  • 2012-04-08
  • 1970-01-01
  • 2023-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 1970-01-01
  • 2020-09-21
  • 2021-04-28
相关资源
最近更新 更多