我在一家PHP商店工作,我们都使用不同的编辑器,我们都必须在Windows上工作。我使用vim,但是店里的每个人都在抱怨,每当我编辑一个文件时,在底部有一个换行符。我四处搜索,发现这是vi & vim的记录行为…但我想知道是否有办法禁用这个功能。(这将是最好的,如果我可以禁用特定的文件扩展名)。
如果有人知道这事,那就太好了!
我在一家PHP商店工作,我们都使用不同的编辑器,我们都必须在Windows上工作。我使用vim,但是店里的每个人都在抱怨,每当我编辑一个文件时,在底部有一个换行符。我四处搜索,发现这是vi & vim的记录行为…但我想知道是否有办法禁用这个功能。(这将是最好的,如果我可以禁用特定的文件扩展名)。
如果有人知道这事,那就太好了!
当前回答
尝试添加.vimrc
set binary
其他回答
也许你可以看看他们为什么抱怨。如果一个php文件在结尾?>后面有换行符,php将把它作为页面的一部分输出。这不是问题,除非您尝试在文件包含后发送头文件。
但是,php文件末尾的?>是可选的。没有结尾?>,在文件末尾使用换行符没有问题。
我想我找到了一个比公认答案更好的解决办法。其他的解决方案都不适合我,我不想一直在二进制模式下工作。 幸运的是,这似乎完成了工作,我还没有遇到任何讨厌的副作用:在文本文件的末尾保留丢失的行尾。我只是将整个内容添加到我的~/.vimrc。
对于vim 7.4+,你可以使用(最好是在你的.vimrc上)(感谢罗泽轩的最后一点新闻!):
:set nofixendofline
现在关于vim的旧版本。
即使文件已经保存,在最后添加新行:
Vim -b文件 一旦进入vim:
:set noeol
:wq
完成了。
或者,您可以在vim中使用:e++ bin文件打开文件
还有另一种选择:
:set binary
:set noeol
:wq
查看更多细节在为什么我需要vim在二进制模式为'noeol'工作?
我在Vim wiki上添加了一个类似(尽管不同)问题的提示:
http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF
在你的.vimrc中添加以下命令来打开行结束选项:
autocmd FileType php setlocal noeol binary fileformat=dos
但是,PHP本身将忽略最后一行结束符——这应该不是问题。我几乎可以肯定,在你的情况下,有其他东西添加了最后一个换行符,或者可能是与windows/unix的行结束类型(\n或\r\n等)混淆。
更新:
另一个解决方案可能是在你的.vimrc中添加这一行:
set fileformats+=dos