每当你打开一个文件时,vim 都会执行一系列检查来确定文件的语言并应用相关的语法突出显示;首先检查文件扩展名,然后查看文件本身。这里没什么新鲜的。
当您创建一个包含文件扩展名的新文件时,例如,test.sql
vim 会自动突出显示您输入的任何内容的 SQL 语法 - 同样,这里没有什么新东西。
但是,当您创建一个没有文件扩展名但包含shebang的新文件时,例如,#!/usr/bin/env python
似乎有必要保存该文件并再次打开它,以便vim应用检查并确定这是一个python脚本。
我的问题是是否有一个 vim 命令可以触发这些检查,允许刷新新(无扩展名)文件中的突出显示,从而避免重新打开文件的需要。
查看 vim 的文档语法加载我以为我会找到一些与我的问题相关的有用信息——但不幸的是,我没有。
答案1
您可以通过以下 3 种不同的方式实现此目的:
:set ft=python
。这种方法的缺点是您无法将其添加到键盘快捷键,因为它仅适用于一种文件类型(本例中为 python):w
+:e
这样做的缺点是您必须在运行命令之前保存文件,因为它会重新加载文件。:filetype detect
但是输入起来会比较长。
您可以将第二个或第三个选项添加为快捷方式,以便map <C-r> :filetype detect<CR>
使用+.vimrc
刷新文件ctrl
r
答案2
根据@KNejad 的使用建议:filetype detect
,这里有一个配置设置,当写入新文件时自动触发检测:
初始化.vim / .vimrc:
au BufWritePost * if &syntax == '' | :filetype detect | endif