删除字节顺序标记 (BOM)

删除字节顺序标记 (BOM)

背景

pgsql运行使用Windows 上的 gVim 编辑的SQL 文件。

问题

BOM 字符会导致语法错误pgsql。我想使用 gVim 编辑文件,并在保存时不再包含 BOM 字符。如果文件包含 BOM 字符,则保存时会保留 BOM 字符,这是不希望的。

想法

更改了设置(编辑 » 启动设置) 如下:

set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
au BufReadPre set nobomb
au BufReadPre setlocal nobomb
au BufReadPre setglobal nobomb
au BufReadPost set nobomb 
au BufReadPost setlocal nobomb 
au BufReadPost setglobal nobomb 
au BufWritePre set nobomb
au BufWritePre setlocal nobomb
au BufWritePre setglobal nobomb
au BufWritePost set nobomb
au BufWritePost setlocal nobomb
au BufWritePost setglobal nobomb
set encoding=utf-8 nobomb    " BOM often causes trouble
setlocal nobomb
setglobal nobomb

没用。我仍然需要键入:set nobomb以明确删除 BOM。

问题

如何配置 gVim 以便在加载文件时立即删除 BOM,而不必:set nobomb每次都记住输入?(我想设置它然后忘记它。)

谢谢你!

答案1

尝试这个:

au BufWritePre set nobomb

答案2

将其添加到您的.vimrc

au BufWritePre * setlocal nobomb

(取自对另一个答案的评论,因为这实际上是一个更好的解决方案。)

相关内容