See line breaks and carriage returns in editor

后端 未结 8 2139
臣服心动
臣服心动 2020-12-04 05:33

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

相关标签:
8条回答
  • 2020-12-04 06:12

    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 into .vimrc are executed, and you can see this example :

    My line with CRLF eol here ^M¶
    
    0 讨论(0)
  • 2020-12-04 06:14

    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 is no problem with the line endings, the files will not be changed.

    0 讨论(0)
  • 2020-12-04 06:17

    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.

    0 讨论(0)
  • 2020-12-04 06:19

    by using cat and -A you can see new lines as $, tabs as ^I
    cat -A myfile

    0 讨论(0)
  • 2020-12-04 06:19

    You can view break lines using gedit editor.

    First, if you don't have installed:

    sudo apt-get install gedit
    

    Now, install gedit plugins:

    sudo apt-get install gedit-plugins
    

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

    Using VSCode you can install 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 ending.

    0 讨论(0)
  • 2020-12-04 06:20

    :set list in Vim will show whitespace. End of lines show as '$' and carriage returns usually show as '^M'.

    0 讨论(0)
提交回复
热议问题