Vim未在bash脚本中(msysgit版本)突出显示语法

6
我是使用msysgit中提供的bash和vim。我已经将.vimrc文件添加到我的主文件夹中,其中大部分命令都能正常执行。但是syntax on无法生效。
这是我的~/.vimrc文件内容:
set cul
hi CursorLine cterm=none ctermbg=darkgray ctermfg=white
syntax on

当前的行和高亮已经可以使用,但是命令无法执行。Msysgit安装了自己的vim,并且在C:\ Program Files(x86)\ Git \ share \ vim \ vim73 \ syntax文件夹中,它不包含bash.vim或sh.vim文件。其他文件都在那里,比如conf.vim,gitcommit.vim和gitrebase.vim,甚至还有c.vim。

我猜这就是为什么没有高亮的原因。鉴于我不能触摸那个文件夹(别问),我该如何更改我的 .vimrc 文件以加载 bash.vim 文件 - 以及获取文件的好地方是哪里?

非常感谢您的帮助。


“:set syn=sh” 打开语法高亮吗? - Pawel Veselov
那里存在一个c.vim文件,当我打开一个.c文件时,它会被高亮显示。 - Adam Dymitruk
哎呀,你仍然需要查看决定语法高亮加载哪个文件的函数。如果你需要一个启用高亮的命令,你可以使用“:so /path/to/bash.vim”命令来源语法文件,但你可能不想这样做。一般来说,当你输入“:syn on”时,vim会执行“:runtime!syntax.vim”,这通常会加载“synload.vim”,它会决定要加载哪个实际的语法文件。你可以查看这些文件,看看你能挽救和放入你的.vimrc文件中的内容。 - Pawel Veselov
我是否不需要在我的.vimrc文件中添加source $HOME/vimfiles/plugins/sh.vim?我想将bash-support.vim重命名为sh.vim。我看到有人说vim文件的插件名称必须与扩展名匹配。 - Adam Dymitruk
Stack Overflow对于任何不寻常的问题都无法提供帮助。我将尝试使用IRC,并在此处回复。 - Adam Dymitruk
显示剩余6条评论
4个回答

6

记录一下,它是$HOME/vimfiles/syntax/,语法文件可以在这里找到,或者直接下载sh.vim - Johan Sjöberg

2
你尝试启用文件类型插件了吗?
:filetype plugin on

如果您的脚本语法仍然无法正确着色,请尝试手动覆盖:

:set ft=sh

1

我不熟悉msysgit,但是为了回答你的最后一个问题:

如何更改我的.vimrc文件以加载bash.vim文件

你应该能够添加:

if filereadable(expand("$HOME/some/path/bash.vim"))
    execute "source " . "$HOME/some/path/bash.vim"
endif

如果您已经安装了可访问的副本,而且不想维护自己的副本,这可能会非常有用。


0
在我的情况下,删除 ~/.vim/view 中的所有内容有所帮助。我在 autocmd 下使用了 mkview,因此当我没有正确关闭 vim 和 bash 时,我认为某些文件已经损坏了。我通过将给我麻烦的文件移动到另一个目录并发现 vim 没有问题地显示它们的语法来解决了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接