【问题标题】:How to copy code from vscode to OneNote without losing the formatting?如何在不丢失格式的情况下将代码从 vscode 复制到 OneNote?
【发布时间】:2020-05-09 01:19:35
【问题描述】:

我想通过将我正在处理的代码保存在 Microsoft Office OneNote 中来记录它。当我复制并粘贴代码时,所有缩进都消失了。

def primeGenerator(primeList1, arr):
    for i in range(2, len(arr)):
        if arr[i]==0:
            primeList1.append(i)
            for j in range(i**2, len(arr), i):
                arr[j] = 1

上面显示的代码变成了这样

def primeGenerator(primeList1, arr):
for i in range(2, len(arr)):
if arr[i]==0:
primeList1.append(i)
for j in range(i**2, len(arr), i):
arr[j] = 1

我尝试了我在互联网上找到的解决方案,例如

  1. 在 vscode 中将缩进转换为制表符
  2. 先将代码复制到 MS Word 中,然后复制到 OneNote 中。

【问题讨论】:

  • 如果将space 替换为非分隔符char(160) 会怎样,许多编辑会将其视为与A 之类的单词char 相同

标签: visual-studio-code formatting indentation vscode-settings onenote


【解决方案1】:

本机不支持它,但是有一些开源解决方法,例如: https://github.com/elvirbrk/NoteHighlight2016

【讨论】:

    【解决方案2】:

    有一个OneNoteSettings/Options/Paste Options/

    确保设置为Keep Source Formatting

    我在 OneNote 中的粘贴保留了缩进和语法高亮(我启用了Editor: Copy with Syntax Highlighting)。

    【讨论】:

    • MacOS 用户,OneNote/Preferences/Edit & View/Paste Options
    【解决方案3】:

    我建议不要在 OneNote 的“设置”下使用“保留源格式”。我只是注意到,当从 Visual Studio Code 复制到 OneNote 时,OneNote 将所有空格字符 (0x20) 替换为 NonBreak Space (0xA0)。

    要重现问题,请从 VSC 复制一些内容,然后将其粘贴到 here。然后将其粘贴到 OneNote 中。然后从 OneNote 复制,然后将其粘贴回同一链接。你会看到所有的空格 (0x20) 都变成了 NonBreak Space (0xA0),这是 Visual Studio Code 不喜欢的(CSS、JS 等)。

    改为使用仅保留文本

    【讨论】:

      【解决方案4】:

      在 Windows 上

      1. 在 VS Code 中将设置 Editor: Insert Spaces 更改为选中。
      2. 在将 JS 代码从 VS Code 复制到 OneNote 之前找到替换使用 正则表达式:
        • 查找:\n\n
        • 替换:\n\n\n
        • 全部替换。
      3. 剪切并粘贴到 OneNote 中。

      似乎是在将 LF / CRLF 定义的文本复制粘贴到 OneNote 中的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-26
        • 2018-08-19
        • 2011-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-17
        相关资源
        最近更新 更多