On 03/04/10 19:31, dave73 wrote:
I'm trying to integrate cscope with vim. The standard method to load the
cscope.out file is simply:
if filereadable("cscope.out")
cs add cscope.out
endif
But this requires always starting vim from the directory with the cscope.out
file. Yuk.
So, I've written a function that scans upward until if find the cscope.out
file, and stores that in a variable. For example s:csfile might end up
"../../cscope.out"
However,
cs add s:csfile
doesn't work! It is trying to actually open a file called "s:csfile". How
do I make vim translate this variable into a literal so that "cs add" will
work???
Thanks.
If you know from which directory the cscope database was built, you
should add that as a second parameter in the "cscope add" command (or
else you _have_ to run all cscope commands in that directory: Yuk). For
example, I have this in my vimrc
let $VIMSRC = '/root/.build/vim/vim' . (version / 100) . (version %
100)
command Cscope -nargs=0 cs add $VIMSRC/src/cscope.out $VIMSRC/src
Then typing :Cscope at the command-line loads my cscope database for the
current Vim source.
See also http://vim.wikia.com/wiki/Cscope
telling how I build my cscope database, and the options and
abbreviations I use to smooth my cscope use.
Now back to your question: To include the _value_ of a Vim variable
(rather than its _name_) in an ex-command, see :help :execute. The
cscope example above bypasses the problem by means of an _environment_
variable (which, however, unlike your s: variable, is not script-local
but common to all of Vim and all its child processes).
Best regards,
Tony.
--
"Never be afraid to tell the world who you are."
-- Anonymous
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
To unsubscribe, reply using "remove me" as the subject.