如何根据目录设置VIM colorscheme?

时间:2012-10-11 14:43:33

标签: vim color-scheme

我经常在不同的应用程序之间切换,希望每个项目都拥有自己的colorscheme,因此更容易区分它们。

我想在我的.vimrc中添加如下内容,但我遇到了VIM脚本语法问题。

# if I were to write it in Ruby
case current_path
when '/path/to/project'       then color textmate
when '/path/to/other_project' then color ir_black
end

2 个答案:

答案 0 :(得分:4)

只要您不想在Vim的单个实例中混合使用不同的项目(colorschemes只能全局设置,而不是单个窗口!),这很容易转换为Vimscript:

if getcwd() ==# '/path/to/project'
    colorscheme textmate
elseif getcwd() ==# '/path/to/other_project'
    colorscheme ir_black
endif

对于广泛的配置,我可能会在循环中使用字典查找,但我保持这个故意简单。

要处理子目录,请使用它进行比较:

if stridx(getcwd(), '/path/to/project') == 0

您还可以通过=~#代替==#进行正则表达式匹配。


或者,还有一些本地vimrc 插件,它们允许您将项目特定的设置应用于某些子目录。我为此使用了localrc

答案 1 :(得分:0)

对于项目设置,请考虑使用project plugin:对于每个项目,您可以指定in.vim文件,其中每次打开此项目的文件时都会执行其内容。

设置colorscheme非常容易。

使用项目插件还可以为每个项目设置其他与项目相关的设置:

  

其他功能包括:
   o加载/卸载项目中的所有文件(\ l,\ L,\ w和\ W)
   o Grepping项目中的所有文件(\ g和\ G)
   o在文件上运行用户指定的脚本(可以使用      在文件上启动外部程序)(\ 1到\ 9)
   o在项目中的所有文件上运行用户指定的脚本      (\ f1- \ f9和\ F1- \ F9)
   o还可以使用netrw插件使用目录      名称如ftp://remotehost
               (适用于网页维护。)
   o支持版本控制的自定义映射      整合(文档中的perforce示例)    o我还在文档中给出了一个例子      根据扩展名设置自定义启动器。该      示例在查看器中启动* .jpg文件。我也定了      查看PDF(acroread)和HTML文件(mozilla)      供我自己使用。