我在一家PHP商店工作,我们都使用不同的编辑器,我们都必须在Windows上工作。我使用vim,但是店里的每个人都在抱怨,每当我编辑一个文件时,在底部有一个换行符。我四处搜索,发现这是vi & vim的记录行为…但我想知道是否有办法禁用这个功能。(这将是最好的,如果我可以禁用特定的文件扩展名)。
如果有人知道这事,那就太好了!
我在一家PHP商店工作,我们都使用不同的编辑器,我们都必须在Windows上工作。我使用vim,但是店里的每个人都在抱怨,每当我编辑一个文件时,在底部有一个换行符。我四处搜索,发现这是vi & vim的记录行为…但我想知道是否有办法禁用这个功能。(这将是最好的,如果我可以禁用特定的文件扩展名)。
如果有人知道这事,那就太好了!
当前回答
也许你可以看看他们为什么抱怨。如果一个php文件在结尾?>后面有换行符,php将把它作为页面的一部分输出。这不是问题,除非您尝试在文件包含后发送头文件。
但是,php文件末尾的?>是可选的。没有结尾?>,在文件末尾使用换行符没有问题。
其他回答
我发现这个vimscript插件对这种情况很有帮助。
Plugin 'vim-scripts/PreserveNoEOL'
或者在github上阅读更多
我没有尝试过这个选项,但在vim帮助系统(即帮助eol)中给出了以下信息:
'endofline' 'eol' boolean (default on)
local to buffer
{not in Vi}
When writing a file and this option is off and the 'binary' option
is on, no <EOL> will be written for the last line in the file. This
option is automatically set when starting to edit a new file, unless
the file does not have an <EOL> for the last line in the file, in
which case it is reset.
通常你不需要设置或 重置此选项。当'binary'是 Off该值在写入时不使用 该文件。当'binary'在上面时,它就是 用来回忆曾经的存在 对于文件的最后一行, 当你写入文件时 情况从原始文件可以 (被)保持。但你可以改变,如果你 想要。
您可能对前面一个问题的答案也感兴趣:“为什么文件应该以换行符结束”。
在你的.vimrc中添加以下命令来打开行结束选项:
autocmd FileType php setlocal noeol binary fileformat=dos
但是,PHP本身将忽略最后一行结束符——这应该不是问题。我几乎可以肯定,在你的情况下,有其他东西添加了最后一个换行符,或者可能是与windows/unix的行结束类型(\n或\r\n等)混淆。
更新:
另一个解决方案可能是在你的.vimrc中添加这一行:
set fileformats+=dos
尝试添加.vimrc
set binary
也许你可以看看他们为什么抱怨。如果一个php文件在结尾?>后面有换行符,php将把它作为页面的一部分输出。这不是问题,除非您尝试在文件包含后发送头文件。
但是,php文件末尾的?>是可选的。没有结尾?>,在文件末尾使用换行符没有问题。