в Vim как мне спрятать eol doc chars ^ M - PullRequest
35 голосов
/ 01 октября 2009

в gvim на окнах, если у меня есть текст с CRLF eol, тогда текст будет отображаться в конце каждой строки ^ M

Как «спрятать» этот специальный символ от дисплея?

команда: set nolist "" "не закрывает ее. Я в тупике.

ОБНОВЛЕНИЕ

Я сделал: установил fileformats = unix, dos как список, но сначала он не работал. Я закрыл файл и снова открыл его, и он работал. По умолчанию я установил для файловых форматов только значение unix. Спасибо за ответы.

Ответы [ 7 ]

31 голосов
/ 01 октября 2009

Возможно, вы захотите установить fileformat на dos.

:ed ++ff=dos %
19 голосов
/ 01 октября 2009

Чтобы скрыть их:

:set fileformats=dos

Чтобы удалить их (чтобы потом можно было сохранить файл как файл Unix):

:%s/\r//g
7 голосов
/ 27 августа 2012

Хотя раз и навсегда собирается в формате DOS или Unix, это, конечно, предпочтительный подход, иногда некоторые сотрудники просто не заботятся о правильном управлении исходными кодами, чтобы заставить их редакторы вести себя.

В этих отчаянных случаях вместо полного преобразования файла (в результате чего файл полностью переписывается самим в соответствии с SCM, что делает функцию «вины» бесполезной), я посчитал предпочтительным просто сделать вид, что проблема не существовать. Если компилятор работает, и PHP во всех отношениях равен , вы можете получить смешанный EOL-файл, который будет выглядеть просто замечательно с помощью следующей команды:

:match Invisible /\r$/

Или в более новых версиях VIM 7.4 +

:match Ignore /\r$/

Что еще хуже, большинство графических редакторов не заканчивают текстовый файл новой строкой, а когда файл заканчивается новой строкой, они показывают пустую строку внизу. Так как это немного раздражает, большинство людей удалит эту пустую строку, что приведет к созданию файла со смешанным EOL (и ужасных ^ Ms, показанных в Vim), если формат файла был DOS.

Если кто-то знает, как заставить Eclipse или NetBeans соблюдать завершение перевода строки, не показывая пустую последнюю строку (как умно делает Vim), , пожалуйста, поделитесь своими знаниями, и вы порадуете программиста здесь. ; -)

1 голос
/ 01 октября 2009

Формат файла обычно определяется автоматически. Вы должны смешать строки Unix и DOS / Windows в вашем файле.

попробуйте это очистить (где "clean" = формат unix):

% tr -d '\015' < old.file > new.file
0 голосов
/ 09 марта 2010

Я хотел бы отметить, что если вы используете полнофункциональный VIM (по крайней мере, на моем Ubuntu 9.10 box), он «делает то, что вы хотите» и автоматически скрывает его, но стандартный vi (и vim-tiny) НЕ скрывайте ^ M. Если вы выполняете минимальную установку (или установку на сервере), вы получаете только vi и vim-tiny. Исправление, которое я нашел, состояло в том, чтобы установить правильный vim (apt-get install vim) на мою коробку Ubuntu. Надеюсь, что это поможет кому-то, кто придет по этой теме по той же причине, что и я: -D

0 голосов
/ 01 октября 2009

используйте команду:

:1,$ s/^v^M/ /g
0 голосов
/ 01 октября 2009
:0,$ s/<ctrl-v><ctrl-m>//g
:set ff=dos
...