Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

On Solaris, if you open a file in vi that has Windows line endings, this shows up as ^M at the end of every line.

On Linux, vi is cleverer and understands the Windows file format, and does not display ^M.

Is there a setting to make Linux vi behave the same as Solaris in this respect?

A common problem for us is copying a shell script off a (Windows) dev box and forgetting to dos2unix it, and then being confused when it doesn't work properly. On Solaris the problem is obvious as soon as you vi the file, but not on Linux.

Thanks.

share|improve this question
    
On Linux, vi is usually Bram Moolenaar's vim, I expect the vi on Solaris is the Bill Joy vi, original, authentic but less capable. –  RedGrittyBrick Nov 16 '11 at 10:04
add comment

1 Answer

up vote 5 down vote accepted

Try :set ffs=unix when starting vi (or set as default in vimrc) which should display all CR characters as ^M.

vi auto-guesses which format to use based on whether or not it encounters lines ending in just LF or both CR/LF.

share|improve this answer
1  
@RedGrittyBrick - On my system, :set list shows $ at the end of all lines (Unix & DOS format), so doesn't help distinguish between the two. –  sss Nov 16 '11 at 9:36
    
@sss: My mistake, I'll delete the comment. –  RedGrittyBrick Nov 16 '11 at 10:00
2  
@gman - this command didn't work for me precisely - I got Not an editor command: ffs=unix - but set me on the right path. Running :set ffs=unix with the file open in vi didn't work - no error but nothing happened. I put set ffs=unix in my .vimrc file and that worked. –  sss Nov 16 '11 at 10:09
    
I experienced exactly the same thing as @sss –  SSH This May 2 '13 at 21:58
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.