LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1725|回复: 8

VIM如何用变量切换当前工作目录???

[复制链接]
发表于 2005-7-11 11:00:03 | 显示全部楼层 |阅读模式
因为我的工作要同时编辑两个工程,所以我希望把我工作的目录放到变量里,然后在.vimrc里cd 打开!或者在工作过程中方便切换!
我的工作目录是'D:\My Documents\work\,而在这个目录里有两个工程,分别在Por及CY1000两个目录里。

在.vimrc里
let g:work = 'D:\My Documents\work\'
let g:pro01 = work+"or"          我想使用work这个变量去拼接出另一个变量的值可能吗?
let g:pro02 = work+"CY1000"
cd work

在工作过程中:
:cd pro01
:make

:cd pro02
:make

但结果都是错的, :help
要实现上述的功能我就应该怎么做呢?
变量是否是这样定义的呢?使用上正确吗?
 楼主| 发表于 2005-7-11 21:40:17 | 显示全部楼层
有人吗?
回复 支持 反对

使用道具 举报

发表于 2005-7-12 15:02:56 | 显示全部楼层
[php]
let g:work_base = "D:/My Documents/work/"
let g:prj01 = g:work_base . "or"
let g:prj02 = g:work_base . "CY1000"

function Cw(dir)
        execute ":cd " . a:dir
endfunction

call Cw(g:work_base)
com -nargs=1 Chw  call Cw(<args>)
[/php]

然后在vim里面通过命令:Chw prj01切换到工作目录D:/My Documents/work/Por
怎么切换到CY1000你应该也会了吧,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-12 15:24:51 | 显示全部楼层
哈哈!终于明白了,是"\"的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-12 15:26:51 | 显示全部楼层
Post by snoopyxp
[php]
let g:work_base = "D:/My Documents/work/"
let g:prj01 = g:work_base . "or"
let g:prj02 = g:work_base . "CY1000"

function Cw(dir)
        execute ":cd " . a:dir
endfunction

call Cw(g:work_base)
com -nargs=1 Chw  call Cw(<args>)
[/php]

然后在vim里面通过命令:Chw prj01切换到工作目录D:/My Documents/work/Por
怎么切换到CY1000你应该也会了吧,


谢谢!
回复 支持 反对

使用道具 举报

发表于 2005-7-12 15:29:19 | 显示全部楼层
不只是折号的问题,直接在cd 后面加vim的变量不行,必须拿函数和自定义命令封装一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-12 15:49:48 | 显示全部楼层
Post by snoopyxp
不只是折号的问题,直接在cd 后面加vim的变量不行,必须拿函数和自定义命令封装一下。


奇怪!我改成了CD没有问题呢
let $work= "D:/My Documents/work/"
cd $work
回复 支持 反对

使用道具 举报

发表于 2005-7-12 15:53:03 | 显示全部楼层
:0)
我说的是用vim的变量不行,你那样定义的似乎是环境变量, 表偷换概念 ;)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-7-12 16:56:56 | 显示全部楼层
Post by snoopyxp
:0)
我说的是用vim的变量不行,你那样定义的似乎是环境变量, 表偷换概念 ;)


哦!还有这样子分的呀!
得好好看看help文档
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表