'See line breaks and carriage returns in editor

Is there a text editor on Linux that allows me to see line breaks and carriage returns? Does Vim support this feature?



Solution 1:[1]

To disagree with the official answer:

:set list will not show ^M characters (CRs). Supplying the -b option to vi/Vim will work. Or, once Vim is loaded, type :e ++ff=unix.

Solution 2:[2]

vi shows newlines (LF character, code x0A) by showing the subsequent text on the next line.

Use the -b switch for binary mode. For example , vi -b filename or vim -b filename --.

It will then show CR characters (x0D), which are not normally used in Unix style files, as the characters ^M.

Solution 3:[3]

Just to clarify why :set list won't show CR's as ^M without e ++ff=unix and why :set list has nothing to do with ^M's.

Internally when Vim reads a file into its buffer, it replaces all line-ending characters with its own representation (let's call it $'s). To determine what characters should be removed, it firstly detects in what format line endings are stored in a file. If there are only CRLF '\r\n' or only CR '\r' or only LF '\n' line-ending characters, then the 'fileformat' is set to dos, mac and unix respectively.

When list option is set, Vim displays $ character when the line break occurred no matter what fileformat option has been detected. It uses its own internal representation of line-breaks and that's what it displays.

Now when you write buffer to the disc, Vim inserts line-ending characters according to what fileformat options has been detected, essentially converting all those internal $'s with appropriate characters. If the fileformat happened to be unix then it will simply write \n in place of its internal line-break.

The trick is to force Vim to read a dos encoded file as unix one. The net effect is that it will remove all \n's leaving \r's untouched and display them as ^M's in your buffer. Setting :set list will additionally show internal line-endings as $. After all, you see ^M$ in place of dos encoded line-breaks.

Also notice that :set list has nothing to do with showing ^M's. You can check it by yourself (make sure you have disabled list option first) by inserting single CR using CTRL-V followed by Enter in insert mode. After writing buffer to disc and opening it again you will see ^M despite list option being set to 0.

You can find more about file formats on http://vim.wikia.com/wiki/File_format or by typing:help 'fileformat' in Vim.

Solution 4:[4]

Try the following command.

:set binary

In Vim, this should do the same thing as using the "-b" command line option. If you put this in your startup (i.e., .vimrc) file, it will always be in place for you.

On many *nix systems, there is a "dos2unix" or "unix2dos" command that can process the file and correct any suspected line ending issues. If there aren't any problems with the line endings, the files will not be changed.

Solution 5:[5]

I suggest you to edit your .vimrc file, for running a list of commands.

Edit your .vimrc file, like this:

cat >> ~/.vimrc <<EOF
set ffs=unix
set encoding=utf-8
set fileencoding=utf-8
set listchars=eol:¶
set list
EOF

When you're executing Vim, the commands in file .vimrc are executed, and you can see this example:

My line with CRLF eol here ^M¶

Solution 6:[6]

By using cat and -A you can see new lines as $ and tabs as ^I:

cat -A myfile

Solution 7:[7]

You can view break lines using the gedit editor.

First, if you don't have it installed, for Debian/Ubuntu/Mint based distros:

sudo apt-get install gedit

For Fedora/CentOS/RedHat based distros:

sudo dnf install gedit

or

sudo yum install gedit

Now, install gedit plugins:

sudo apt-get install gedit-plugins

or

Under Gnome2, user plugins were put into ~/.gnome2/gedit/plugins/
For Gnome3: ~/.local/share/gedit/plugins/

Download the plugins from: https://help.gnome.org/users/gedit/stable/gedit-plugin-guide.html.en#gedit-additional-plugins

and select Draw Spaces plugin, enter on Preferences, and chose Draw new lines:

Enter image description here

Enter image description here

Using Visual Studio Code, you can install the Line endings extension.

Sublime Text 3 has a plugin called RawLineEdit that will display line endings and allow the insertion of arbitrary line-ending type

Shift + Ctrl + P and start type the name of the plugin, and toggle to show line endings.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Zoe stands with Ukraine
Solution 2 Peter Mortensen
Solution 3 Paul van Leeuwen
Solution 4 Peter Mortensen
Solution 5 Peter Mortensen
Solution 6 Peter Mortensen
Solution 7