Кто-нибудь знает текстовый редактор в Linux, который позволяет мне видеть разрывы строк и возврат каретки? Поддерживает ли Vim эту функцию?
См. Разрывы строк и возврат каретки в редакторе
Ответ 1
:set list
в Vim будет отображаться пробел. Конец строк отображается как "$
", а возврат каретки обычно отображается как "^M
".
Ответ 2
Не согласен с официальным ответом:
:set list
не будет отображать символы ^ M (CR). Поставка опции -b для vi/vim будет работать. Или, после загрузки vim, введите :e ++ff=unix
.
Ответ 3
VI показывает символы новой строки (символ LF, код x0A
), показывая последующий текст на следующей строке.
Используйте переключатель -b
для двоичного режима. Например, vi -b filename
или vim -b filename --
.
Затем будут показаны символы CR (x0D
), которые обычно не используются в файлах стиля Unix, в качестве символов ^M
.
Ответ 4
Просто чтобы пояснить, почему :set list
не будет отображать CR как ^M
без e ++ff=unix
и почему :set list
не имеет ничего общего с ^M
.
Внутренне, когда Vim считывает файл в его буфер, он заменяет все символы конца строки своим собственным представлением (давайте назовем его $
). Чтобы определить, какие символы следует удалить, он сначала определяет, в каком формате окончания строк хранятся в файле. Если имеются только символы CRLF '\r\n'
или только CR '\r'
или только символы конца строки LF '\n'
, то для 'fileformat'
устанавливается значение dos
, mac
и unix
соответственно.
Когда установлена опция list
, Vim отображает символ $
, когда произошел разрыв строки, независимо от того, какая опция fileformat
была обнаружена. Он использует собственное внутреннее представление переносов строк и того, что отображает.
Теперь, когда вы записываете буфер на диск, Vim вставляет символы конца строки в соответствии с тем, какие параметры fileformat
были обнаружены, существенно преобразовывая все эти внутренние $
с соответствующими символами. Если fileformat
оказался unix
, он просто напишет \n
вместо внутреннего разрыва строки.
Хитрость заключается в том, чтобы заставить Vim читать закодированный файл dos
как файл unix
. Чистый эффект состоит в том, что он удалит все \n
, оставив \r
нетронутыми, и отобразит их как ^M
в вашем буфере. Установка :set list
дополнительно покажет внутренние окончания строки как $
. В конце концов, вы видите ^M$
вместо закодированных dos
разрывов строк.
Также обратите внимание, что :set list
не имеет ничего общего с показом ^M
. Вы можете проверить это самостоятельно (сначала убедитесь, что вы отключили опцию list
), вставив один CR, используя CTRL-V
, а затем Enter
в режиме вставки. После записи буфера на диск и его повторного открытия вы получите ses ^M
несмотря на то, что для опции list
установлено значение 0.
Вы можете узнать больше о форматах файлов на http://vim.wikia.com/wiki/File_format или набрав :help 'fileformat'
в Vim.
Ответ 5
Попробуйте выполнить следующую команду.
: установить двоичный
В VIM это должно делать то же самое, что использовать параметр командной строки "-b". Если вы поместите это в свой файл запуска (то есть .vimrc), он всегда будет для вас.
Во многих системах * nix существует команда "dos2unix" или "unix2dos", которая может обрабатывать файл и исправлять любые подозрительные проблемы с окончанием строки. Если нет проблем с окончанием строки, файлы не будут изменены.
Ответ 6
Я предлагаю вам отредактировать файл .vimrc для запуска списка команд. Измените файл .vimrc, например:
cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF
Когда вы выполняете vim, выполняются команды в .vimrc, и вы можете увидеть этот пример:
My line with CRLF eol here ^M¶
Ответ 7
Вы можете просмотреть строки разрыва, используя gedit редактор.
Во-первых, если вы не установили:
sudo apt-get install gedit
Теперь установите плагины Gedit:
sudo apt-get install gedit-plugins
и выберите плагин " Draw a Spaces", войдите в "Настройки" и выберите "Нарисовать новые линии"
Используя VSCode, вы можете установить конец строки.
Sublime Text 3 имеет плагин RawLineEdit, который будет отображать окончания строк и разрешать вставку произвольного типа окончания строки
shift + ctrl + p
и start введите имя плагина и переключитесь, чтобы показать конец строки.
Ответ 8
с помощью cat
и -A
вы можете видеть новые строки как $
, вкладки как ^I
cat -A myfile