文件类型检测不起作用

文件类型检测不起作用

vimrc在两台不同的电脑上使用相同的软件,两台 MacBook 都使用 MacVim。一台在从终端启动文件后可以正确检测文件类型。另一台则需要我手动输入。

:set filetype=php

如果您对 vimrc 中的哪些设置可以控制此行为有任何其他好奇的观察,我们将不胜感激。

答案1

尝试添加一行:filetype off之前filetype plugin indent on

答案2

我要检查的第一件事是 - 在损坏的机器上,编辑你的 vimrc 并确保set filetype on它在那里的某个地方。

检查损坏机器的其他事项:

  1. $VIMRUNTIME/filetype.vim 存在
  2. :filetype当您编辑文件时显示什么?(应该说检测插件和缩进都处于打开状态。)
  3. 是否set syntax off出现在你的 vimrc 的任何地方?

通过查看你的文件可以发现以下几点:

第 70-72 行:

文件类型也用于语法高亮。如果使用该命令,则文件类型检测也会被安装。之后:syntax on无需执行。:filetype on:syntax on

如果你要使用filetype plugin indent on,则无需filetype on在它前面加上 right 。各种命令的工作原理如下:

命令检测插件缩进~  
:filetype 开启 开启 不变 不变  
:filetype off off 不变 不变  
:filetype 插件 开启 开启 不变  
:filetype 插件 关闭 不变 关闭 不变  
:filetype 缩进 开启 开启 不变 开启  
:filetype 缩进 关闭 不变 不变 关闭  
:filetype 插件缩进  
:filetype 插件缩进 关闭 不变 关闭 关闭  

第 170 行:关闭 NERD 闭嘴。您是否收到任何有关使用文件类型的投诉?

其他想法:

非工作机器上的文件是否可能已修改 filetypes.vim?比较文件。它们完全相同吗?权限是否相同?

答案3

最新版本的 vim 不会在启动时自动执行文件类型检测,因为您可能会在 .vimrc 中设置影响文件类型检测的命令。

将以下代码放在 .vimrc 的末尾,你将再次获得文件类型检测

filetype on
filetype plugin on
filetype indent on

答案4

几件事。由于在其中一个上您的 vimrc “工作正常”,这意味着问题出在另一个上(我假设在第一个上,一切都运行正常)。

Vim 可以从各种目录加载配置文件,这些目录具有不同的加载优先级(一个优先级会覆盖另一个优先级)。请参阅 ":help vimfiles" 以查看哪些是这些。

其次,尝试“:echo $myvimrc”来查看“最新”vimrc 的加载位置。它是您当前链接到的那个吗?

第三,正如 Dave 已经指出的那样,您的 vim 目录中是否有一个名为“filetype.vim”的文件,并且您是否有足够的文件类型文件?

如果这些都不适合您,请告诉我们您使用的是哪个版本的 vim/gvim

相关内容