Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vim中自动检测文件格式?_Vim - Fatal编程技术网

如何在vim中自动检测文件格式?

如何在vim中自动检测文件格式?,vim,Vim,虽然set ff?手动检测文件格式,但我不知道如何在启动时检测 我尝试了if($ff=='unix')但没有 那么,有更好的办法吗?要阅读选项,您应该使用&ff 要阅读选项,应使用&ff 正如@Kent所说,这确实是&ff。但是请注意,这只适用于当前缓冲区。如果您打开另一个文件(:e,:sp…),它将具有自己的值 一个.vimrc不是分析打开vim时使用的文件的最佳位置,因为它只是这样做:只分析这个文件,只做出一次反应 你到底想达到什么目的?(->如果fileformat=unix,则删除^M)

虽然
set ff?
手动检测文件格式,但我不知道如何在启动时检测

我尝试了
if($ff=='unix')
但没有


那么,有更好的办法吗?

要阅读选项,您应该使用
&ff

要阅读选项,应使用
&ff

正如@Kent所说,这确实是
&ff
。但是请注意,这只适用于当前缓冲区。如果您打开另一个文件(
:e
:sp
…),它将具有自己的值

一个
.vimrc
不是分析打开vim时使用的文件的最佳位置,因为它只是这样做:只分析这个文件,只做出一次反应

你到底想达到什么目的?(->如果fileformat=unix,则删除^M)

编辑: 好啊然后,您需要侦听
BufWritePre
事件以在保存时修复该文件,或者
BufReadPost
以在读取后立即修复该文件。在这种情况下,您可能会遇到无法修改文件的问题,并且您还必须使用
&modifiable

aug fix_eol
  au!
  BufReadPost * if &ff!=unix | keepp %s/\r$//e | endif
aug END

在所有情况下,不得在
.vimrc
中清楚地书写测试。这四行可以。

正如@Kent所说,它确实是
&ff
。但是请注意,这只适用于当前缓冲区。如果您打开另一个文件(
:e
:sp
…),它将具有自己的值

一个
.vimrc
不是分析打开vim时使用的文件的最佳位置,因为它只是这样做:只分析这个文件,只做出一次反应

你到底想达到什么目的?(->如果fileformat=unix,则删除^M)

编辑: 好啊然后,您需要侦听
BufWritePre
事件以在保存时修复该文件,或者
BufReadPost
以在读取后立即修复该文件。在这种情况下,您可能会遇到无法修改文件的问题,并且您还必须使用
&modifiable

aug fix_eol
  au!
  BufReadPost * if &ff!=unix | keepp %s/\r$//e | endif
aug END

在所有情况下,不得在
.vimrc
中清楚地书写测试。这四行可以。

我猜他想写一些autocmd。如果fileformat是unix,我试图删除回车符。这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-@ScottHunter&评论家。在我的定义中,预测未来的错误/不当行为并不是回答问题。我猜他想写一些autocmd。如果fileformat是unix,我试图删除回车符。这并不能回答问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-@ScottHunter&评论家。根据我的定义,预测未来的错误/不当行为并不是回答问题。