查找Vim中加载的文件类型

298

在Vim中,只要我加载任何文件,它就会尝试检测该文件,并在可能的情况下对其进行颜色高亮。

我想知道一个Vim命令,可以告诉我Vim考虑哪个ftplugin或filetype插件/ filetype来对该文件进行高亮。


Vim不会自动完成这个吗? - ereOn
1
如果您将vimscript放在/.vim/ftplugin/中,当加载匹配文件类型的文件时,它将源该vimscript。因此,在`/.vim/ftplugin/python.vim中放置setlocal cursorline,您将在Python文件中拥有当前行高亮显示。请参阅:help ftplugin:help after`。 - idbrii
6个回答

470

:set filetype?


65
你可以节省一些按键操作,直接使用 :set ft? - Matthew Rankin
2
SO要求最小评论长度,因此最短的评论以“t”结尾可能并不明显。问号是可选的。 - reergymerej
3
请问您的意思是:“se ft?我是赢家!”吗? - kioopi
8
or even shorter --> :se ft - roeland
我该如何找出是否已调用:filetype on - theonlygusti

46

文件类型:命令未找到 [1]+ 完成 回声 - ajinzrathod

17

你还可以使用%y%Y来将文件类型添加到状态行或窗口标题中。请参见:

:help 'statusline'
:help 'titlestring'

5

由于您首先提出/搜索这个问题,我假设您这样做是因为您的vim无法自动正确地突出显示语法,您正在尝试找出原因并解决它。

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

逻辑上,您的下一步将是告诉vim“只需使用(例如)ps1语法进行突出显示”。您可以通过键入:set filetype = ps1来实现这一点,现在vim将使用ps1样式突出显示当前文件(前提是您已经下载了适当的powershell语法文件并将其放入~/.vim/syntax中)。

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

现在这是一个愉快的结局。


5
当我想要找到文件类型时,是因为我正在修改一个ipython脚本,而这个脚本的扩展名为.ipynb。上面的问答对于发现ipython扩展名没有被视为Python(有点显然)非常有用。因此,我想强制设置文件类型,并从永远友好的vim网站中找到了以下内容。将以下内容添加到您的.vimrc中即可生效。 http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions
au BufRead,BufNewFile *.ipy set filetype=python

2
如前所述,:set filetype?显示当前语法,但要重新检测文件的语法,可以使用以下命令:
:filetype detect

更多信息请访问:

:h filetype-detect

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接