使用VIM开发软件项目4:保存项目相关配置 -管理资料

管理资料 时间:2019-01-01 我要投稿
【www.unjs.com - 管理资料】

   

    系列文章汇总:《使用VIM开发软件项目

    本节所用命令的帮助入口:

   

    :help "path"

    :help mksession

    :help find

    :help gf

    :help CTRL-W_f

    我们在前面介绍了vimrc,vimrc定义了VIM通常的行为,

使用VIM开发软件项目4:保存项目相关配置

。每个项目都有其特殊的定义,虽然我们也可以在vimrc中对每个项目进行定制,但这样一来,vimrc会变得很大,使VIM启动速度变慢;另外也会使vimrc变得难以维护。

    因此,我们使用其它的方法来保存项目相关的信息,这就是本文的主要内容。我们将以path选项的设置为例进行讲解。

    path选项定义了一个目录列表,在使用gf,find,以及CTRL-W f等命令时,如果使用的是相对路径,那么就会在path选项定义的目录列表中查找相应的文件。path选项以逗号分隔各目录名。我们依旧以VIM 7.0的源代码为例(源代码放在~/src/vim70/目录中)。

    对于这个项目,我们的path选项设置如下:

    set path=.,/usr/include,,~/src/vim70/**

    稍微解释一下各项的含义,更详细的信息,请查看path选项的帮助页:

    .               在当前文件所在目录中搜索

    /usr/include    在/usr/include目录中搜索

    ,,              在当前工作路径中搜索

    ~/src/vim70/**  在~/src/vim70的所有子目录树中进行搜索

    设置了path选项后,怎么用呢?

    我们还是回到序章中的屏幕抓图,我们把光标定位到src/main.c文件第22行的”fcntl.h”单词上,然后在Normal模式下按”gf”。咦,VIM打开了/usr/include/fcntl.h文件!

    现在我们按”CTRL-^”回到刚才的位置,光标仍旧定位在第22行的”fcntl.h”单词上,然后按”CTRL-W f”。啊哈,这次VIM打开了一个水平分隔窗口,在此窗口中打开了/usr/include/fcntl.h。

    尽管在src/main.c中未指定fcntl.h的路径,但VIM会在path选项定义的路径中搜索此文件,方便吧!

    现在我们看一下find命令,输入:

    :find netrw.vim

    VIM打开了~/src/vim70/runtime/autoload/netrw.vim文件。用这种方法打开文件真是太方便了,你不用输入文件的路径,VIM会自动在path选项定义的路径中搜索。不过”find”命令也有缺陷,如果你只记得文件名的一部分,那么就没有办法用find命令打开这个文件了。而且find命令也不允许使用正则表达式。没关系,我们还有更好的方法来打开文件,我将在后续文章中介绍这些方法。

    path选项介绍完了,我们进入正题,如何把本项目相关的配置保存起来,下次打开本项目时自动恢复这些配置呢?

    我们有两种方法做到这一点,

管理资料

使用VIM开发软件项目4:保存项目相关配置》(https://www.unjs.com)。

    [方法1]

    我们在~/src/vim70/目录下建立一个文件,假定文件名为workspace.vim,文件内容为:

    "set project path

    set path+=~/src/vim70/**

    这个文件中保存了项目相关的信息,例如选项值,键映射,函数定义,自动命令,等等。我们的例子中只定义的path选项,我们没有使用”set path=…”语句,在VIM帮助页中建议使用”set path+=…”和”set path-=…”格式。

    接下来,在你的vimrc文件中加入下面的语句:

    " execute project related configuration in current directory

    if filereadable("workspace.vim")

    source workspace.vim

    endif

    以后,每次你在~/src/vim70/目录中启动VIM时,VIM都会自动载入workspace.vim,恢复项目的配置信息。

    [方法2]

    还记得本系列文章的第二篇“使用会话和viminfo”吗?那篇文章中,我们介绍了使用会话和viminfo保存项目环境的方法。如果你使用了会话,那么选项值,键映射,和其它很多信息都已经保存了。但会话的功能毕竟有限,不能把项目相关的配置全部保存下来,怎么办呢?

    VIM的开发者已经想到了这个问题,并提供了解决办法。

    在VIM载入会话文件的最后一步,它会查找一个额外的文件并执行其中的ex命令。查找的规则是,把会话文件名的后缀去掉,然后在后面加上“x.vim”,。假设你的会话文件名为example.session,VIM就会查找是否有examplex.vim,如果找到,就会执行此文件中的ex命令。

    好了,我们先创建我们的会话文件:

    :cd ~/src/vim70

    :set sessionoptions-=curdir       "在session option中去掉curdir

    :set sessionoptions+=sesdir       "在session option中加入sesdir

    :mksession vim70s.vim             "创建一个会话文件

    然后再编辑一个名为~/src/vim70/vim70sx.vim的文件,文件的内容为(当然,你可以在这个文件中加入更多内容):

    "set project path

    set path+=~/src/vim70/**

    退出vim后,在命令行下执行”gvim &”,再次进入VIM,这时看到的是一个空白窗口。然后执行下面的命令:

    :source ~/src/vim70/vim70s.vim "载入会话文件

    太棒了!原来的会话环境已经恢复,并且项目相关的配置也设置好了!

    来自:http://blog.csdn.net/easwy/archive/2007/02/27/1515803.aspx

最新文章
推荐文章