There is another way to approach this if you are using Git for source control. Inspired by an answer here, I wrote my own filter for use in a gitattributes file.
To install this filter, save it as noeol_filter
somewhere in your $PATH
, make it executable, and run the following commands:
git config --global filter.noeol.clean noeol_filter
git config --global filter.noeol.smudge cat
To start using the filter only for yourself, put the following line in your $GIT_DIR/info/attributes
:
*.php filter=noeol
This will make sure you do not commit any newline at eof in a .php
file, no matter what Vim does.
And now, the script itself:
import sys
if __name__ == '__main__':
try:
pline = sys.stdin.next()
except StopIteration:
sys.exit(0)
for line in sys.stdin:
sys.stdout.write(pline)
pline = line
if len(pline) > 2 and pline.endswith("\r\n"):
sys.stdout.write(pline[:-2])
elif len(pline) > 1 and pline.endswith("\n"):
sys.stdout.write(pline[:-1])
else:
sys.stdout.write(pline)
?>
closing tag, just for this reason. - Sebastián Grignoli