首页 文章

能够查看隐形文本的文本编辑器?

提问于
浏览
14

最近的一个问题*让我想知道是否有文本编辑器可以让你看到文件的每个字符,即使它们是不可见的?具体来说,我会向我展示所有不可见的字符(不仅仅是常见的空格/换行符) . BOM marker只是一个例子,其他例如是mathematical invisibles或可能unsupported characters .

我不是在寻找一种文本编辑器,它只支持编码之间的各种文本编码/翻译 . 我遇到的所有文本编辑器都正确对待不可见的字符,即让它们不可见(或者只是在BOM标记的情况下在翻译中删除) .

我问这主要是出于学术兴趣,所以我并不特别关注任何特定的操作系统 . 我可以轻松地测试Linux和OSX解决方案,但是如果你推荐一个Windows编辑器,如果你包含编辑器如何处理除空白/换行之外的隐形,我将不胜感激 .

编辑:我开始确保我想要的行为可以通过自定义突出显示或通过乱搞字体本身在emacs / vim中实现 . 这种解决方案也是可以接受的 .

编辑2:看了几个选项后,我发现TextMate至少显示一个空白区域,文件中有一个不可见的UTF-8字符 . 对SO回答我的问题的能力略感失望 . Bounty去了VIM,因为这是解决方案最有可能的方向 .


*引发我这个问题的事件:我使用TextWrangler编写了一个perl脚本,并设法将编码更改为UTF8 BOM,它在文件的开头插入BOM标记 . Perl(或者更确切地说是操作系统)迅速错过了#!随之而来的是混乱 . 然后,由于大多数文本编辑器都没有显示BOM标记,即使打开了各种"show invisibles"选项,它也花了我一个下午的大部分时间来解决这个问题 . 现在我已经吸取了教训,并将立即使用 less :-) .

9 回答

  • 7

    在Visual Studio的 Open File 对话框中,“打开”按钮旁边有一个向下箭头,可让您选择“打开方式...” . 结果对话框中的一个选项是 Binary Editor .

    我偶尔使用它来发现一些看不见的字符或解决一些行结束问题 .

  • 1

    记事本岩石:

    npp

  • 2

    vim(在文本或图形模式下)如果你 :set list 可以显示所有控制字符 . BOM是一种特殊情况,由 :set bomb:set nobomb 命令控制 .

  • 9

    在EMACS中打开文件并执行M-X hexl-mode . 你会得到一个如下所示的显示:

    87654321  0011 2233 4455 6677 8899 aabb ccdd eeff  0123456789abcdef                               
    00000000: 2320 2020 2020 2020 2020 2020 2020 2020  #               
    00000010: 2020 2020 2020 2020 2020 2020 2020 2020                  
    00000020: 2020 2020 2020 2020 2020 2020 2020 2020                  
    00000030: 2d2a 2d20 4175 746f 636f 6e66 202d 2a2d  -*- Autoconf -*-
    00000040: 0a23 2050 726f 6365 7373 2074 6869 7320  .# Process this 
    00000050: 6669 6c65 2077 6974 6820 6175 746f 636f  file with autoco
    00000060: 6e66 2074 6f20 7072 6f64 7563 6520 6120  nf to produce a 
    00000070: 636f 6e66 6967 7572 6520 7363 7269 7074  configure script
    00000080: 2e0a 2320 4f72 6465 7220 6973 206c 6172  ..# Order is lar
    00000090: 6765 6c79 2069 7272 6576 656c 6c61 6e74  gely irrevellant
    000000a0: 2c20 616c 7468 6f75 6768 2069 7420 6d75  , although it mu
    000000b0: 7374 2073 7461 7274 2077 6974 6820 4143  st start with AC
    000000c0: 5f49 4e49 5420 616e 6420 656e 6420 7769  _INIT and end wi
    000000d0: 7468 2041 435f 4f55 5450 5554 0a23 2053  th AC_OUTPUT.# S
    000000e0: 6565 2068 7474 703a 2f2f 6175 746f 746f  ee http://autoto
    000000f0: 6f6c 7365 742e 736f 7572 6365 666f 7267  olset.sourceforg
    00000100: 652e 6e65 742f 7475 746f 7269 616c 2e68  e.net/tutorial.h
    
  • 3

    我遇到了同样的限制 - 我的具体问题是需要能够显示U 200B(零宽度空间)和U 200C(零宽度非连接器)等字符 . (用于电子文本中使用像Khmer这样的语言,否则不会将单词与空格分开 . )与您不同,我需要一个Windows和Linux版本的编辑器,而Mac也是可取的 .

    我没有找到任何可以让你在屏幕上显示它们的文本编辑器,虽然有些(很多?)会让你输入它们并将它们正确地视为可以剪切和粘贴的字符,并通过光标移动指示它们的存在 . (也就是说,如果屏幕显示“if”并且“i”和“f”之间有三个ZWSP,则必须按箭头键四次才能从“i”移动到“f” . )

    TextPad 4.7.3是我选择的文本编辑器,但它在接受脚本时非常有限;而TextPad 5绝对不会显示这些隐形 .

    我经常在OpenOffice.org Writer中打开我的文件,这些文件会在这些角色的位置显示灰色斜线并打开隐形,而Microsoft Word则显示此类隐形字符的双框(框内的框)字符 . 这个双框有宽度,并在屏幕上更改换行符,这不是一件容易的事,我在其他任何编辑器中都没有看到过 .

  • 2

    我更喜欢UltraEdit,即使它不是免费的 . 它非常能够显示隐藏的字符,包括强大的HEX查看模式 . (我不隶属于出版商,IDM . )

  • 5

    您还可以使用记事本来显示它们 . 这是一个例子,黑盒子是控制字符 .

    Notepad ++ Control Characters Example

  • 1

    我不确定,因为我有一段时间没有使用它,但我记得SciTE是一个很好的展示给我的"too much information"满足我的需求 .

    Windows上的Programmer's Notepad可能有效 .

    TextPad(这是nagware,在Windows上运行)

    我不确定哪些会显示隐藏的角色,但它们都是为“书呆子”制作的,所以我认为它们会起作用,至少有一点点调整 . 我可以验证程序员的记事本是否显示“隐藏”字符 .

  • 18

    如果您运行的是32位版本的Windows,您可以在运行框中键入“编辑”,查看物料清单和其他不可见的字符,例如回车符或换行符,它们看起来像MS Dos编辑器中的音乐八分音符 . 或者从命令提示符 . 不幸的是,ms dos编辑器在64位系统上不可用:(

相关问题