Как я могу найти символ, отображаемый как <85> в Vim?
У меня есть файл, который был преобразован из EBCDIC в ASCII. Там, где раньше были новые строки, теперь есть символы, которые отображаются как < 85 > (символ, представляющий один символ, а не четыре его символа), а весь файл находится в одной строке. Я хочу найти их и снова заменить их новыми строками, но я не знаю, как это сделать.
Я попытался поместить курсор над одним и использовать * для поиска следующего события, надеясь, что он может появиться в моей истории поиска. Это не сработало. Он просто искал слово, которое следовало за символом < 85 > .
Я искал некоторых, но не видел ничего очевидного.
Моя цель - создать строку поиска и замены, например:
:%s/<85>/\n/g
Что в настоящее время просто дает мне:
E486: Pattern not found: <85>
Спасибо!
Ответы
Ответ 1
Я нашел этот пост из поиска Google. Похоже, вы должны уметь:
:%s/\%x85/\r/gc
(Опустите c
, чтобы выполнить замену без запроса, сначала попробуйте c
, чтобы убедиться, что он делает то, что вы хотите.)
В vim, набрав :h \%x
, вы получите более подробную информацию. В дополнение к \%x
вы можете использовать \%d
, \%o
, \%u
и \%u
для десятичных, восьмеричных, до четырех и до восьми шестнадцатеричных символов.
Ответ 2
попробуйте следующее: :%s/<85>/^M/g
Примечание: нажмите Ctrl-V вместе, затем M
или если вы не возражаете использовать другой инструмент,
awk '{gsub("<85>","\n")}1' file