只要我在vim中加载任何文件,它就会尝试检测文件,并在可能的情况下突出显示颜色。

我想知道一个vim命令,它会告诉我哪个ftplugin或Filetype插件/文件类型是vim考虑突出显示文件。


当前回答

&文件类型的脚本使用

最小的例子:

echo &filetype

更现实的用法示例:

if &filetype ==# 'c' || &filetype ==# 'cpp'
  setlocal noexpandtab
endif

&语法适用于所有选项:https://vi.stackexchange.com/questions/2569/how-do-i-check-the-value-of-a-vim-option-in-vimscript

其他回答

:设置文件类型?

还可以使用%y和%y项将文件类型添加到状态行或窗口标题中。看到

:help 'statusline'
:help 'titlestring'

当我想要找到文件类型时,这是因为我有.ipy扩展名修改ipython脚本。上面的问答非常有效,可以看到ipython扩展没有被当作python来对待(这有点明显)。因此,我想强制设置文件类型,我从曾经的helppul vim网站上找到了这个。http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

将以下内容添加到.vimrc即可

au BufRead,BufNewFile *.ipy set filetype=python

由于您首先要询问/搜索这个问题,我假设您这样做是因为您的vim以某种方式没有自动为您突出显示正确的语法,您正在试图找出原因,以及如何修复它。

命令:set filetype?在选择的答案中,基本上是问vim“嘿,你认为当前文件是什么类型”。如果vim没有显示正确的颜色/高亮显示,很可能它的答案是在控制台底部显示filetype=,这意味着vim不知道文件类型。这只是你任务的一半。

从逻辑上讲,您的下一步将告诉vim“只需使用(例如)ps1语法突出显示它”。您可以输入:set filetype=ps1,现在vim将使用ps1样式突出显示当前文件(假设您已经下载了正确的powershell语法文件并将其放入~/.vim/语法中)。

此时,从现在开始,您可能需要自动语法突出显示。解决方案是在~/中放入相应的检测脚本。vim / ftdetect文件夹。例如,如果您想突出显示所有PowerShell脚本.ps1、.psm1等,您可以将此文件放到~/.vim/ftdetect中

这是一个圆满的结局。

&文件类型的脚本使用

最小的例子:

echo &filetype

更现实的用法示例:

if &filetype ==# 'c' || &filetype ==# 'cpp'
  setlocal noexpandtab
endif

&语法适用于所有选项:https://vi.stackexchange.com/questions/2569/how-do-i-check-the-value-of-a-vim-option-in-vimscript