You can customize indicate-empty-lines
to enable a fringe marker on lines after the end of the file, or call toggle-indicate-empty-lines
to turn it on and off interactively.
There's a package on MELPA that replaces the default fringe indicator with a ~ for a look that is closer to what you get with vi. See vi-tilde-fringe
.
Updated
An alternative approach would be to use whitespace mode to make line breaks visible. Try whitespace-newline-mode
, possibly tweaking the whitespace-newline
face. Visually this approach is busier then what vi does since you're marking all lines in the buffer except the empty lines after the content, but it achieves a similar result. (It may also be possible to configure whitespace mode or a custom derived mode to only highlight empty lines at the end of the buffer content.)