【发布时间】:2019-01-25 09:28:34
【问题描述】:
我使用不同版本的方案(Gambit-C 和 Guile),并且为(大部分)Gambit-C 的关键字编写了一个语法文件。但是,我只想在为 Gambit-C 使用文件时使用它。
从我的 vimrc 获取它不起作用,因为方案语法是在我的 vimrc 之后获取的,如果我使用 -s 或 -c 获取它,它只适用于打开的第一个文件,我必须为每个额外的文件/参数获取它。
我看到 this 解决方案部分解决了我的问题,但我真的不希望 vim 对 every 方案文件使用 Gambit-C 语法。 我也尝试添加
if exists("b:is_gambit") || exists("is_gambit")
"syntax extensions
....."
endif
并像chicken scheme vim help 中显示的那样使用它,但这不起作用,然后我意识到它似乎也不适用于鸡肉方案(即在“.vim/ftplugin”中设置“let b:is_chicken” /scheme.vim" 文件没有在方案中添加鸡语法)!!
我是否对变量“(let b:is_chicken)”和(let b:is_gambit) 做错了什么,或者是否有另一种方法可以使其适用于选定的方案文件,例如在所有文件之后使 .vimrc 源文件加载了吗?
更新:事实证明,由于某种原因,“.vim/ftplugin/scheme.vim”没有被获取并且变量“b:is_chicken”没有被设置(这可以使用“:scriptnames”或“echo”来检查b:is_chicken")。然后我将 "let b:is_chicken" 放在 ".vim/syntax/scheme.vim" 中,然后小鸡方案语法就起作用了。但这并不能区分不同的方案文件。
【问题讨论】:
-
你如何区分这两种方言?文件扩展名?文件中有内容?
-
我最初的计划是/是在 -u {vimrc} 文件中设置变量“b:is_gambit”,问题是在“.vim/ftplugin/scheme.vim”中设置变量鸡肉文件也不起作用。所以通过设置变量。使用不同的文件扩展名对我来说有点复杂。可以通过在文件中添加不影响编译的内容来完成吗?那将是一个有效的答案。
-
@romainl 对不起,我只是理解你的问题,我没有办法区分文件本身/文件中的两种方言。我使用带有 "-u" 选项的不同 vimrc 文件。
标签: vim scheme lisp vim-syntax-highlighting