【问题标题】:Using unicode / utf-8 in programmers editors在程序员编辑器中使用 unicode / utf-8
【发布时间】:2012-08-10 07:52:53
【问题描述】:

有很多程序员编辑器声称支持unicode/utf-8。我尝试了其中的一些(UltraEdit、jedit、emedit),但没有一个告诉你如何将 unicode 字符实际输入到文件中。其中一些告诉您如何将默认文件编码更改为 utf-8 或如何选择对 utf-8 有良好支持的字体,但不告诉您如何使用他们的编辑器将 utf-8 输入文件。

Go 语言(和其他一些语言)支持 utf-8,我喜欢使用实际的 utf-8 符号表示变量的想法,而不是像 omega 这样名称的变量。不过,我还没有找到真正允许你这样做的程序员编辑器。

我发现唯一可以让您输入 unicode 的编辑器/文字处理器是 Microsoft Word。键入 unicode 和 Alt+X 和 Word 将其转换。要获取希腊字母 omega,请键入“03c9”,然后按 Alt+X。 UltraEdit 将允许您将 utf-8 从网页复制到其中,但他们的文档没有说明如何在文件中实际输入 utf-8,以及他们的技术。支持的人也不知道。

这应该很简单,但似乎完全没有记录。是否有一些组合键约定可以让您在这些编辑器中输入 unicode,这些编辑器应该支持 unicode,就像 Ctrl-F 广泛用于搜索一样?

谢谢。

【问题讨论】:

  • “支持 UTF-8”和“握着你的手输入”是两个不同的东西。操作系统通常是为各种语言的文本提供输入法的操作系统。
  • 当你写“输入Unicode”时,你的意思似乎是字符实体或转义序列(取决于你写的内容的类型)。但是您应该能够将“真实”字符直接输入到任何具有良好 Unicode 支持的编辑器中。 (除了在 jEdit 中不显示中文汉字和日文汉字。)

标签: unicode utf-8 editor


【解决方案1】:

标准程序员的编辑器 vim(1) 支持有限的 Unicode 输入,即使您的操作系统应该太坏而无法这样做(还有这样的吗?)。

只需输入^VuXXXX,其中XXXX 正好代表四个十六进制数字。

这将允许您输入分配给基本多语言平面的约 6% 的 Unicode。其余的对你是禁止的。

这可能会在较新的版本中得到修复。

否则,请使用鼠标。

【讨论】:

  • 在 Windows 上的 vim 上试过,但它不起作用。我需要使用任何特殊键(Ctrl、Alt、...)吗?
  • Ctrl-V 将缓冲区中的内容粘贴到 Windows 上。
  • @DeanSchulze:在 Windows 上使用 Ctrl-Q,参见 :help ctrl-v
  • @tchrist: vim 的非古代版本应该支持^VUXXXXXXXX。参看。 :help i_CTRL-V_digit.
  • @ninjalj 对。不过,必须输入所有这些额外的数字是很糟糕的。这就是为什么 Java 正则表达式语法转到 \x{XXX}
【解决方案2】:

如果缺少编辑器,我会使用一些技巧:

  1. 使用 Windows charmap.exe 实用程序选择字符并粘贴到文档中。
  2. 安装输入法编辑器 (IME) 以使用特定语言进行书写。
  3. Windows ALT keycodes

【讨论】:

  • 尤其是日文 IME 可以帮助其转换为多个不同的候选者。不过,不确定 Windows 日文 IME 在这方面的表现如何。
  • 例如,使用 OS X 日文输入法:输入“o-m-e-g-a”,按几次空格 → ω。 (·ω·)
【解决方案3】:

最好将您的键盘设置为在所有 Windows 应用程序中生成 Unicode 字符,而不是依赖单个应用程序的自定义输入功能 IMO。

使用EnableHexNumpad feature,您可以使用 Alt+numbad-plus,hexcode 在基本多语言平面中键入任何字符。 (不过,在没有数字键盘的笔记本电脑上可能没有多大用处。)

或者,如果您想大量输入特定字符,请找到一种允许您直接输入它们的键盘布局。例如eurokb 可能会覆盖它,或者您可以使用MSKLC 自己制作。

【讨论】:

    【解决方案4】:

    老问题,但你可以在 GNU Emacs 或 Vim 中输入很多 unicode

    • GNU Emacs:M-x set-input-method RET tex(或C-x RET C-\ tex)会让你输入\omega来生成ω

    • Vim:Vim digraphs 可以生成 unicode; C-k w * 在插入模式下会给你 ω。

    【讨论】:

      【解决方案5】:

      deceze 一针见血。 (S)他只是没有详细说明。 bobince 给了更多。

      我冒昧地猜测您是从事 L14N 或 I18N 工作的开发人员或测试人员。我也猜想你需要做的不仅仅是在这里或那里的几个字符,否则你会对从另一个应用程序粘贴感到满意。所以,我会分享一些建议。 (注意:这里,“你”指的是下一个看这里的人。我敢肯定原海报现在已经不在乎了。:-))

      如果您使用的是 Windows 10,请安装适当的键盘驱动程序,以便您在任何应用程序中输入所需的字符。我确信 Linux 也支持同样的事情。

      例如我正在自学印地语 (हिंदी),所以我安装了 Windows 的印地语 (天城文) 支持。我使用该支持在印地语中输入了“印地语”,然后我切换回美国英语来完成这篇文章的其余部分。如果您只需要来自西欧语言的重音字符,您可以安装 INTL 英语支持并直接输入 español 或 français 或其他任何内容。

      不要将输入 Unicode 字符视为在英文文本中输入某种特殊数据。这只是别人的语言。使用他们的键盘。输入他们的语言。

      我正在编写一个抽认卡应用来帮助我学习。我正在使用印地语键盘支持在 Word、写字板、Excel 和 Visual Studio 编辑器中输入字符。印地语键盘支持在所有这些应用程序中的工作方式完全相同,因为我希望它几乎可以在任何支持 Unicode 的文本编辑器中工作。正如您在上面看到的,它也适用于 Chrome 中的简单文本编辑控件。没有复制和粘贴。不记得特殊代码。它和 ctrl-F 一样无处不在。

      【讨论】:

        【解决方案6】:

        看起来程序员编辑器中的 unicode 支持(某些 Microsoft 产品除外)大多是只读的。他们可以使用 unicode 打开文件并显示字符,但在文件中输入 unicode 则是另一回事。如果您想在程序员编辑器中输入 unicode,您可以从其他地方(网页或 Microsoft Word 或记事本)复制它并将其粘贴到编辑器中,但编辑器使输入 unicode 变得困难或不可能。

        UltraEdit 技术支持将我推荐给this web page,这解释了很多。不幸的是,没有一个解决方案适用于 UltraEdit。

        Microsoft Word 和记事本支持 unicode 输入。键入 unicode 值,后跟 Alt+X,它将转换十六进制并显示它。然后,您可以将其复制并粘贴到 UltraEdit 或其他程序员编辑器之一中。正如其他人提到的,对 unicode 的支持取决于操作系统和编辑器中的支持。

        让我对在源代码文件中使用 unicode 感兴趣的是 Mark Summerfield 的书 Programming in Go。他包含一个使用 unicode 的示例 .go 文件。使用 unicode 希腊字符代替名为“omega”或“theta”的变量名称会很棒。

        然而,在源代码中使用 unicode 是个坏主意。程序员编辑器对 unicode 的支持很糟糕,开发人员必须将他们的源代码文件保存或转换为 utf-8 而不是 ASCII。不管这个想法听起来多么简洁,开发人员的工具还没有准备好用 unicode 编写代码。

        【讨论】:

        • 为了它的价值,我可以在 OS X 上的 Sublime Text 中使用我的日语输入法和/或具有“非 ASCII 字符”的键盘“以 Unicode 编程”。你是在这里过度概括。
        • UltraEdit 支持通过按住 ALT 键并在数字键盘上键入数值来输入 unicode。但是,这不支持输入十六进制值。他们添加了十六进制条目作为增强请求。
        猜你喜欢
        • 1970-01-01
        • 2023-03-29
        • 2018-01-14
        • 1970-01-01
        • 1970-01-01
        • 2010-09-18
        • 2014-02-18
        • 2020-08-05
        • 2014-06-24
        相关资源
        最近更新 更多