Skip to main content

How do I convert dos files to linux files in vim?


If I open files I created in windows, the lines all end with ^M.





How do I delete them all in once?


Source: Tips4allCCNA FINAL EXAM

Comments

  1. dos2unix is a commandline utility that will do this, or


    :%s/^M//g



    will if you use ctrl-v ctrl-m to input the ^M. Or you can:


    :set ff=unix



    and vim will do it for you. Docs on the 'fileformat' setting are here, and the vim wiki has a comprehensive page on line ending conversions.

    Alternately, if you move files back and forth a lot, you might not want to convert them, but rather to do


    :set ff=dos


    so vim will know it's a DOS file and use DOS conventions for line endings.

    ReplyDelete
  2. Change the lineendings in the view:

    :e ++ff=dos
    :e ++ff=mac
    :e ++ff=unix


    This can also be used as saving operation (:w alone will not save using the lineendings you see on screen):

    :w ++ff=dos
    :w ++ff=mac
    :w ++ff=unix


    And you can use it from the command-line:

    for file in $(ls *cpp)
    do
    vi +':w ++ff=unix' +':q' ${file}
    done

    ReplyDelete
  3. I prefer to use the following command :

    :set fileformat=unix


    You can also use mac or dos to respectively convert your file to macintosh or MS-DOS/MS-Windows file convention. And it does nothing if the file is already in the correct format.

    For more information, see the vim help :

    :help fileformat

    ReplyDelete
  4. :%s/\r+//g

    In Vim, that strips all carriage returns, and leaves only newlines.

    ReplyDelete
  5. I typically use

    :%s/\r/\r/g


    which seems a little odd, but works because of the way that vim matches linefeeds. I also find it easier to remember :)

    ReplyDelete
  6. from: http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix

    [Esc] :%s/\r$//

    ReplyDelete
  7. :set fileformat=unix to convert from dos to unix.

    ReplyDelete
  8. Usually there is a dos2unix command you can use for this, just make sure you read the manual as the GNU and BSD versions differ on how they deal with the arguments.

    # BSD version
    dos2unix $FILENAME $FILENAME_OUT
    mv $FILENAME_OUT $FILENAME

    #GNU version
    dos2unix $FILENAME


    Alternatively, you can create your own dos2unix with any of the proposed answers here, for example:

    function dos2unix(){
    [ "${!}" ] && [ -f "{$1}" ] || return 1;

    { echo ':set ff=unix';
    echo ':wq';
    } | vim "${1}";
    }

    ReplyDelete
  9. You can use the following command:
    :%s/^V^M//g
    where the '^' means use "Ctrl" key.

    ReplyDelete
  10. With the following command:

    :%s/^M$//g


    Get the ^M to appear type Ctrl-V then Ctrl-M. Ctrl-V tells Vim to take the next character entered literally.

    ReplyDelete
  11. dos2unix can directly modify the file contents.

    you can diretly use on the file. no need for temp file redirection

    dos2unix input.txt input.txt

    the above uses the assumed US keyboard
    use -437 option to use the UK keyboard.

    dos2uinx -437 input.txt input.txt

    in solaris we can use dd command also.

    ReplyDelete

Post a Comment

Popular posts from this blog

[韓日関係] 首相含む大幅な内閣改造の可能性…早ければ来月10日ごろ=韓国

div not scrolling properly with slimScroll plugin

I am using the slimScroll plugin for jQuery by Piotr Rochala Which is a great plugin for nice scrollbars on most browsers but I am stuck because I am using it for a chat box and whenever the user appends new text to the boxit does scroll using the .scrollTop() method however the plugin's scrollbar doesnt scroll with it and when the user wants to look though the chat history it will start scrolling from near the top. I have made a quick demo of my situation http://jsfiddle.net/DY9CT/2/ Does anyone know how to solve this problem?

Why does this javascript based printing cause Safari to refresh the page?

The page I am working on has a javascript function executed to print parts of the page. For some reason, printing in Safari, causes the window to somehow update. I say somehow, because it does not really refresh as in reload the page, but rather it starts the "rendering" of the page from start, i.e. scroll to top, flash animations start from 0, and so forth. The effect is reproduced by this fiddle: http://jsfiddle.net/fYmnB/ Clicking the print button and finishing or cancelling a print in Safari causes the screen to "go white" for a sec, which in my real website manifests itself as something "like" a reload. While running print button with, let's say, Firefox, just opens and closes the print dialogue without affecting the fiddle page in any way. Is there something with my way of calling the browsers print method that causes this, or how can it be explained - and preferably, avoided? P.S.: On my real site the same occurs with Chrome. In the ex