V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
feng32
V2EX  ›  程序员

有复制带高亮格式的代码的方法吗

  •  
  •   feng32 · 2016-02-23 17:37:19 +08:00 · 7962 次点击
    这是一个创建于 2985 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚才发邮件的时候,手动格式化了一段几百行的代码,累死了。。。

    一般从 Visual Studio 、 gnome-terminal 等地方粘出来的代码肯定都时纯文本,有工具可以生成 HTML 之类的富文本吗?

    贴到博客里然后再复制回来应该是个办法,但是感觉太不优雅了,而且调颜色方案也不是很方便。

    第 1 条附言  ·  2016-02-24 11:08:14 +08:00

    楼主用的工作系统是 Linux Mint ,然后在虚拟机里装了 Windows XP

    后来又试了一下

    • Visual Studio 粘到 163 邮箱里没颜色
    • Visual Studio 粘到 Word 里是带颜色的
    • Notepad++ (6.9) 粘到 163 邮箱里没颜色
    • Notepad++ (6.9) 粘到 Word 里还是没颜色的
    • Linux 下 Sublime Text 3103 粘到 LibreOffice 没颜色
    • Linux 下 Sublime Text 3103 粘到 163 邮箱里没颜色
    • Linux 下 Qt Creator 粘到 LibreOffice 带颜色
    • Linux 下 Qt Creator 粘到 163 邮箱里带颜色
    • Linux 下 gedit / vim 粘到 LibreOffice 没颜色
    • Linux 下 gedit / vim 粘到 163 邮箱里没颜色
    • 把虚拟机中 Word 里面带颜色的文字复制到宿主机的 163 邮箱里,结果不带颜色 :(

    总结

    • Notepad++ 直接用 Ctrl + C 貌似不行吧 (楼主的测试环境是 Windows XP, Office 2003)
    • 有时粘到 Word 里是有格式的,但是直接粘到 Web 邮箱里却不行
    • 看起来跨系统的格式传递还是有些问题 (楼主用的是 VirtualBox 5.0.14)
    • Linux 下完全有可能直接复制带格式的文本 (Qt Creator 就成功了)
    • 但是 Linux 下要复制格式可能限制更多 (常见的 vim, gedit, sublime 3103 都不行)
    第 2 条附言  ·  2016-02-26 11:13:19 +08:00

    更新

    使用 Notepad++ 是可以复制 RTF 的,需要用到一个叫 NppExport 的插件 (默认情况下应该已经启用了)
    下面的链接里有相关截图:

    http://stackoverflow.com/questions/3475790/copy-notepad-text-with-formatting

    但是 Notepad++ 没有 Linux 版 (Wine 还没测试),并且剪贴板里的东西从 VirtualBox 虚拟机里复制出来格式就没了

    Sublime Text 2 有 Linux 的版本,但也有些小问题。下面列举一下安装步骤:

    首先安装 Sublime Text 2 (Ubuntu 14.04)

    • sudo add-apt-repository ppa:webupd8team/sublime-text-2
    • sudo apt-get update
    • sudo apt-get install sublime-text

    然后按照这里的方法安装 Package Control

    然后使用 Package Control 安装 SublimeHighlight

    最后重启 Sublime Text 即可完成安装。但是实际上使用是有些问题的:

    • Linux Mint (MATE) 下,直接粘贴到 163 邮箱没有格式 (但是粘贴的是格式代码)
    • 但是如果先导出 HTML ,然后用浏览器打开,复制到 163 邮箱中,是有格式的

    总之 Linux 下还是稍微有点不方便,但是既然有 Sublime Text 这个东西,大部分语言的高亮处理应该是没问题了

    14 条回复    2016-02-26 10:17:17 +08:00
    pelloz
        1
    pelloz  
       2016-02-23 17:44:55 +08:00
    我从 Eclipse 上面复制到 word 里面是带有格式的啊,你先复制到 word 里面再试试?
    whahuzhihao
        2
    whahuzhihao  
       2016-02-23 17:48:17 +08:00
    phpstorm 赋值出来的直接就是 rtf ,自带格式
    myth
        3
    myth  
       2016-02-23 18:50:13 +08:00   ❤️ 1
    用 sublime 的话可以试下 插件 sublimeHighlight
    xuboying
        4
    xuboying  
       2016-02-23 18:51:45 +08:00 via Android
    Notepad++ rtf 格式,求 vim rtf
    puyo
        5
    puyo  
       2016-02-23 18:52:45 +08:00
    貌似 notepad 有复制 html 格式的内容,具体去查询一下
    Yc1992
        6
    Yc1992  
       2016-02-23 18:56:06 +08:00
    google 关键字 代码高亮

    或者写到 markdown 里面 导出为 html
    ChiChou
        7
    ChiChou  
       2016-02-23 19:28:50 +08:00
    从 Visual Studio 复制到 Word 里是带颜色的
    garipan
        8
    garipan  
       2016-02-23 20:16:36 +08:00
    这就是为什么要用 MarkDown
    cmheia
        9
    cmheia  
       2016-02-23 20:21:50 +08:00
    Delbert
        10
    Delbert  
       2016-02-23 20:38:11 +08:00 via Android
    一般从 Visual Studio 、 gnome-terminal 等地方粘出来的代码肯定都时纯文本???
    为啥我从 VS 复制出来是代码高亮的?
    feng32
        11
    feng32  
    OP
       2016-02-24 12:41:08 +08:00
    @pelloz 平时写 C / C++ / Python 居多,感觉装个 Eclipse 有点太笨重了
    feng32
        12
    feng32  
    OP
       2016-02-24 12:42:05 +08:00
    @xuboying 为何我用 Notepad++ Ctrl+C 复制出来的不是 rtf ?是操作不对吗?
    xuboying
        13
    xuboying  
       2016-02-24 12:43:50 +08:00 via Android   ❤️ 1
    @feng32 需要一个插件,叫 export 什么,你菜单里找找,找不到就用插件管理器装下
    feng32
        14
    feng32  
    OP
       2016-02-26 10:17:17 +08:00
    @xuboying 找到了,在菜单 Plugins - NppExport 目录下

    这里有个截图:
    http://stackoverflow.com/questions/3475790/copy-notepad-text-with-formatting
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3104 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:11 · PVG 08:11 · LAX 17:11 · JFK 20:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.