Текстовый редактор, способный просматривать невидимые?

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

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

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

EDIT: я начинаю быть уверенным, что поведение, которое я хочу, может быть реализовано в emacs/vim через пользовательскую подсветку или путем использования самого шрифта. Решение этого типа также будет приемлемым.

EDIT2: просмотрев несколько вариантов, я нашел TextMate, который, по крайней мере, показывает пустое место, где в файле находится невидимый символ UTF-8. Немного разочарован способностью SO ответить на мой вопрос. Bounty отправляется в VIM, потому что это направление, в котором скорее всего лежит решение.


* Случай, который приводит меня к этому вопросу: я написал perl script с помощью TextWrangler и сумел изменить кодировку на спецификацию UTF8, которая вставляет маркер спецификации в начале файла. Perl (или скорее операционная система) быстро пропускает #! и наступает гнев. Затем мне потребовалась лучшая часть дня, чтобы понять это, поскольку большинство текстовых редакторов не показывают маркер спецификации даже с включенными опциями "show invisibles". Теперь я выучил свой урок и сразу же использую less: -).

Ответы

Ответ 1

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

Ответ 2

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

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

Ответ 3

Notepad ++ rocks:

npp

Ответ 4

Откройте файл в EMACS и выполните шестнадцатеричный режим 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

Ответ 5

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

Ответ 6

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

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

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

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

Ответ 7

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

Notepad ++ Control Characters Example

Ответ 8

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

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

TextPad (это nagware, работает в Windows)

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

Ответ 9

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