在Vim中,只要我加载任何文件,它就会尝试检测该文件,并在可能的情况下对其进行颜色高亮。
我想知道一个Vim命令,可以告诉我Vim考虑哪个ftplugin或filetype插件/ filetype来对该文件进行高亮。
在Vim中,只要我加载任何文件,它就会尝试检测该文件,并在可能的情况下对其进行颜色高亮。
我想知道一个Vim命令,可以告诉我Vim考虑哪个ftplugin或filetype插件/ filetype来对该文件进行高亮。
:set filetype?
:set ft?
。 - Matthew Rankin:filetype on
? - theonlygusti&filetype
用于脚本使用
最简示例:
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'
由于您首先提出/搜索这个问题,我假设您这样做是因为您的vim无法自动正确地突出显示语法,您正在尝试找出原因并解决它。
选定答案中的命令:set filetype?
基本上询问vim“嘿,你认为当前文件类型是什么”。如果vim没有显示正确的颜色/高亮,那么它对您的回答很可能在控制台底部显示此filetype =
,表示vim不知道文件类型。这只是您任务的一半。
逻辑上,您的下一步将是告诉vim“只需使用(例如)ps1语法进行突出显示”。您可以通过键入:set filetype = ps1
来实现这一点,现在vim将使用ps1样式突出显示当前文件(前提是您已经下载了适当的powershell语法文件并将其放入~/.vim/syntax中)。
此时,您可能希望从现在开始自动语法突出显示。解决方案是将相应的检测脚本放入您的~/.vim/ftdetect文件夹中。例如,如果您要突出显示所有PowerShell脚本.ps1,.psm1等,则将此文件放入您的~/.vim/ftdetect中。
现在这是一个愉快的结局。
au BufRead,BufNewFile *.ipy set filetype=python
:set filetype?
显示当前语法,但要重新检测文件的语法,可以使用以下命令::filetype detect
更多信息请访问:
:h filetype-detect
/.vim/ftplugin/中,当加载匹配文件类型的文件时,它将源该vimscript。因此,在`/.vim/ftplugin/python.vim中放置
setlocal cursorline,您将在Python文件中拥有当前行高亮显示。请参阅
:help ftplugin和
:help after`。 - idbrii