我希望能够有一个文件与一些突出选择本地到当前目录,一般用于突出显示某些短语在日志文件中,因为我正在分析它。
我发现了这个:
if filereadable("_gvimrc")
source _gvimrc
endif
字符串
在这个问题中:Vim:对目录中的文件应用设置
但是,当在文件之间切换时,比如“file1.log”和“file2.log”,高亮显示会被擦除,因为local _gvimrc并不是每次打开文件时都有源代码,只有当vim启动时才有源代码。
有没有一种方法可以在每次打开文件时重新加载本地命令文件?
2条答案
按热度按时间6jygbczu1#
正如链接答案的注解中所提到的,建议的命令存在许多问题。当您编辑另一个文件时,您的突出显示丢失,这一事实表明:a)您可能以一种次优的方式进行了突出显示,b)您也在错误的位置进行了突出显示。很难根据您提供的少量信息更具体地说明这一点。
通常,放入
*vimrc
文件中的命令在启动期间和全局范围内执行一次,这使得它不适合于本地的、特定于文件的命令,如:字符串
你需要用一个自动命令来执行它,这样它才能真正地使用。
型
现在,如果我想在
/path/to/logs/
下的所有*.log
文件中,系统地用黄色突出显示短语foo bar
,用蓝色突出显示短语baz quux
,我会这样做:syntax/mylogs.vim
下创建一个特定的语法脚本,内容如下:型
我...
Yellow
和Blue
请参见
:help syntax
。mylogs
语法分配给/path/to/logs/
下的每个*.log
文件:型
我...
参见
:help :augroup
、:help :autocmd
、:help BufRead
、:help BufNewFile
、:help 'syntax'
,以及更一般地,:help new-filetype
。这样做的净效果是,每次我在
/path/to/logs/
下编辑*.log
时,我都可以毫不费力地以我想要的方式突出显示foo bar
和baz quux
:的数据
如果我需要添加新短语,我只需向语法脚本中添加更多行:
型
最后,使用以下语句重新应用语法:
型
或者简单地说:
型
的
5ssjco0h2#
正如我在你所选择的方法的注解中所写的,“你一次只能做一个项目”。这正是你所观察到的:配置文件只在Vim启动时加载。
如果你真的不想为此使用插件,如果你没有目录层次结构,
:h 'exrc'
可能就足够了。如果你不害怕用项目特定的自动命令来破坏你的.vimrc,还有Romain解决方案的第二部分--第一部分,也是非常聪明的部分,可以应用于任何方法(你可以在你的
~/.vim/syntax/
目录中定义语法文件,然后从local_vimrc/.exrc/.