在vim中检测新文件的语言(刷新语法高亮)

Jav*_*ias 8 vim syntax-highlighting

无论何时打开文件,vim 都会执行一系列检查以确定文件的语言并应用相关的语法突出显示;首先检查文件扩展名,然后查看文件本身。这里没有什么新鲜事。

当您创建一个包含文件扩展名的新文件时,例如,test.sqlvim 会自动将 SQL 语法高亮显示为您键入的任何内容 - 同样,这里没有任何新内容。

但是,当您创建一个没有文件扩展名但包含shebang 的新文件时,例如,#!/usr/bin/env python似乎有必要保存该文件并再次打开它以便vim 应用检查并确定这是一个python 脚本。

我的问题是是否有触发这些检查的 vim 命令,允许刷新新(无扩展)文件中的突出显示,避免重新打开文件的需要。

看看 vim 的语法加载文档,我想我会发现一些关于我的查询有用的东西 - 不幸的是我没有。

KNe*_*jad 8

这里有 3 种不同的方法可以做到:

  • :set ft=python. 这种方法的缺点是你不能将它添加到键盘快捷键,因为它只能处理一种文件类型(在这个例子中是 python)
  • :w+:e这样做的缺点是您必须在运行命令之前保存文件,因为它会重新加载文件。
  • :filetype detect 不过打字时间更长。

您可以将第二个或第三个选项添加map <C-r> :filetype detect<CR>为您的快捷方式,.vimrc以启用使用ctrl+刷新文件r