Ale*_*vey 1 vim modeline vim-syntax-highlighting
根据许多在线文档(例如),我应该能够通过添加以下行来通过模式行启用 bash 语法突出显示:
# vim:let g:is_bash=1:set filetype=sh:
Run Code Online (Sandbox Code Playgroud)
并在.vimrc:
filetype plugin indent on
syntax on
set modeline
set modelines=4
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我添加这些行时,我收到一条错误消息:
"packer/shunit2/include.sh" 85L, 2749C
Error detected while processing modelines:
line 85:
E518: Unknown option: let
Run Code Online (Sandbox Code Playgroud)
其中第 85 行当然是上面的模式行。(它是文件中的最后一行。)
尽管有这么多页面表明它应该起作用,为什么这不起作用,错误消息是什么意思,我该如何更改此设置,以便我的 bash 脚本以正确的 bash 语法突出显示打开?
不,这个答案是错误的。您不能在modeline 中定义变量,只能在那里设置(某些)选项(出于安全原因)。
要实现 bash 语法高亮,您有以下选项:
let g:is_bash = 1在您的~/.vimrc. 这是最简单的选项,但仅当您编辑的所有内容都是 Bash(不是 Korn shell 或任何其他 shell 方言)时才有效。#!/bin/bash; 在$VIMRUNTIME/syntax/sh.vim随后会自动检测到它。:autocmd BufNew,BufRead {pattern} let b:is_bash = 1就可以了。如果您需要检查文件内容,请将代码放入~/.vim/ftplugin/sh_bashdetection.vim左右。let b:is_bash = 1) 放入.lvimrc该项目根目录中的文件中,它会自动将设置应用于该子目录树中的所有文件。