找到vim中加载的文件类型

rut*_*raj 213 vim

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

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

hob*_*bbs 340

:set filetype?

  • 你可以保存一些按键,只需使用`:set ft?` (39认同)
  • `:se ft?` - 我赢了.;) (35认同)
  • `:se ft`?我赢了! (34认同)
  • `:echo&filetype`和`:echo&ft`也可以 (15认同)
  • 甚至更短 --> :se ft (8认同)
  • :se ft?我是胜利者! (3认同)
  • SO 需要最小注释长度,因此最短的注释在“t”之后结束可能并不明显。?是可选的。 (2认同)

Nef*_*byr 14

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

:help 'statusline'
:help 'titlestring'
Run Code Online (Sandbox Code Playgroud)


Cir*_*四事件 7

&filetype 用于脚本使用

最小示例:

echo &filetype
Run Code Online (Sandbox Code Playgroud)

更实际的用法示例:

if &filetype ==# 'c' || &filetype ==# 'cpp'
  setlocal noexpandtab
endif
Run Code Online (Sandbox Code Playgroud)

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


Pau*_*aul 5

当我想查找文件类型时,是因为我使用 .ipy 扩展名修改 ipython 脚本。上面的问答非常有效,我们发现 ipython 扩展没有被视为 python(有点明显)。因此我想强制设置文件类型,我从曾经有用的 vim 网站上找到了这个。 http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

将以下内容添加到您的 .vimrc 作品中

au BufRead,BufNewFile *.ipy set filetype=python
Run Code Online (Sandbox Code Playgroud)


Ray*_*Luo 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

现在这是一个幸福的结局。