Текстовый редактор, способный просматривать невидимые? - PullRequest
14 голосов
/ 27 марта 2010

Недавняя проблема * заставила меня задуматься, есть ли там текстовый редактор, который позволяет вам видеть все символы файла, даже если они невидимы? В частности, я не ищу возможности редактирования в шестнадцатеричном формате, мне интересен текстовый редактор, который покажет мне все невидимые символы (не только обычные символы пробела / переноса строки). Маркер BOM является лишь одним примером, например, другие. математические невидимые или, возможно, неподдерживаемые символы .

Я не ищу текстовый редактор, который просто поддерживает большое разнообразие кодирования / перевода текста между кодировками. Все текстовые редакторы, с которыми я сталкивался, правильно обрабатывают невидимые символы, то есть оставляют их невидимыми (или просто удаляются в переводе, как в случае маркера спецификации).

Я спрашиваю это в основном из академических интересов, так что я не особо интересуюсь какой-либо конкретной ОС. Я легко тестирую решения для Linux и OSX, но если вы порекомендуете редактор Windows, я был бы признателен, если бы вы включили описания того, как редактор обрабатывает невидимые объекты, кроме пробелов и разрывов строк.

РЕДАКТИРОВАТЬ: я начинаю быть уверенным, что нужное мне поведение может быть реализовано в emacs / vim либо с помощью пользовательского выделения, либо возиться с самим шрифтом. Решение такого типа также будет приемлемым.

РЕДАКТИРОВАТЬ 2: После просмотра нескольких вариантов я нашел TextMate, который по крайней мере показывает пустое пространство, где невидимый символ UTF-8 находится в файле. Немного разочарован способностью SO ответить на мой вопрос. Щедрость идет в VIM, потому что это направление, в котором, скорее всего, лежит решение.


* Инцидент, который привел меня к этому вопросу: я написал Perl-скрипт, используя TextWrangler, и мне удалось изменить кодировку на UTF8 BOM, которая вставляет маркер BOM в начало файла. Perl (или, скорее, операционная система) быстро пропускает #! и наступает беспредел. После этого мне потребовалась лучшая часть дня, чтобы понять это, так как большинство текстовых редакторов не показывают маркер спецификации даже при включенных различных параметрах «показывать невидимые». Теперь я усвоил урок и сразу же использую less: -).

Ответы [ 9 ]

18 голосов
/ 04 апреля 2010

vim (в текстовом или графическом режиме) может отображать все управляющие символы, если вы :set list. Спецификация - это особый случай, управляемый командами :set bomb или :set nobomb.

9 голосов
/ 27 марта 2010

В диалоговом окне Открыть файл в Visual Studio рядом с кнопкой Открыть имеется стрелка вниз, позволяющая выбрать Открыть с помощью ... . Одним из параметров в появившемся диалоговом окне является Двоичный редактор .

Я использовал это время от времени, чтобы обнаружить невидимого символа или решить проблему с окончанием строки.

7 голосов
/ 27 марта 2010

Блокнот ++ пород:

npp

5 голосов
/ 06 июня 2010

Откройте файл в EMACS и выполните hex-режим M-X. Вы получите дисплей, который выглядит следующим образом:

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 голосов
/ 24 апреля 2010

Я столкнулся с теми же ограничениями - моя конкретная проблема заключается в необходимости отображать такие символы, как U + 200B, пробел нулевой ширины и U + 200C, не присоединяющийся к нулевой ширине. (Используется в электронных текстах с такими языками, как кхмерский, которые иначе не разделяют слова пробелами.) В отличие от вас, вместо «платформа не имеет значения» мне нужен редактор с версиями Windows и Linux, и Mac тоже желателен.

Я не нашел текстовых редакторов, которые позволили бы вам отображать их на экране, хотя некоторые (многие?) Позволят вам ввести их и будут правильно обрабатывать их как символы, которые можно вырезать и вставить и чье присутствие указано через движение курсора. (То есть, если на экране отображается «если» и между «i» и «f» есть три ZWSP, вам нужно четыре раза нажать клавишу со стрелкой, чтобы перейти от «i» к «f».)

TextPad 4.7.3 в противном случае является моим текстовым редактором, но он очень ограничен в принятии сценариев; и TextPad 5 определенно не показывает эти невидимые.

Я часто прибегал к открытию своих файлов в OpenOffice.org Writer , который будет показывать серую косую черту в расположении этих символов с включенными невидимыми, и Microsoft Word , который отображает символ двойного ящика (box in a box) для таких невидимых. Этот двойной блок имеет ширину и изменяет разрывы строк на экране, что не является тривиальным и которое я не видел ни в одном другом редакторе.

2 голосов
/ 30 октября 2014

Вы также можете использовать Notepad ++, чтобы показать их. Вот пример, черные ящики являются управляющими символами.

Notepad ++ Control Characters Example

2 голосов
/ 31 марта 2010

Я предпочитаю UltraEdit , хотя это не бесплатно. Он очень способен отображать скрытые символы, в том числе надежный режим просмотра HEX. (Я не связан с издателем, IDM.)

1 голос
/ 10 декабря 2010

Если вы работаете с 32-битной версией Windows, вы можете увидеть спецификации и другие невидимые символы, такие как возврат каретки или перевод строки, которые выглядят как восьмая музыкальная нота в редакторе MS Dos, которую вы можете открыть, набрав «edit» в окно запуска или из командной строки. К сожалению, редактор ms dos недоступен в 64-битных системах: (

1 голос
/ 04 апреля 2010

Я не уверен, так как не использовал его некоторое время, но я помню, что SciTE был хорошим, который показал мне «слишком много информации» для моих нужд.

Блокнот программиста в Windows может работать.

TextPad (Это Nagware, работает на Windows)

Я не уверен, какие из них будут показывать скрытых персонажей из коробки, но все они сделаны для "всезнайки", поэтому я предполагаю, что они будут работать, по крайней мере, с небольшой подстройкой. Я могу убедиться, что Блокнот программиста показывает «скрытые» символы.

...