Loading ...
Sorry, an error occurred while loading the content.

Re: vim scripting - using variables

Expand Messages
  • Tony Mechelynck
    ... 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_
    Message 1 of 4 , Apr 3 11:06 AM
    • 0 Attachment
      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.
    Your message has been successfully submitted and would be delivered to recipients shortly.