Sorry for the late reply Gary and thank you very much that it works!!!
But there are others that can't work, so I want to know why this helps. I
tried to read some help file about iskeyword and isfname, but it hardly did
help. So I ask you do me a favor to describe the keyword and how it
works?(maybe this won't waste too much of your time)
Thank you again:)

On Thu, Jul 1, 2010 at 4:42 AM, Gary Johnson <garyj...@spocom.com> wrote:

> On 2010-06-30, X Heruacles wrote:
>
> > On Wed, Jun 30, 2010 at 3:42 PM, Gary Johnson <garyj...@spocom.com>
> wrote:
> >
> >     On 2010-06-30, X Heruacles wrote:
> >     > I'm just learning lua and I use vim to navigate some lua projects.
> I  use
> >     ctags
> >     > to generate tags using a map:
> >     >
> >     >     map <F12>  <Esc>:!ctags -R .<CR>
> >     >
> >     > but it rarely helps. When I want to jump to some function
> definition, it
> >     always
> >     > errs. Then I checked the generated tag and it seems fine. So my
> question
> >     is
> >     > just is there a better way to navigate lua project?(esp. jumping to
> >     function
> >     > definition?)
> >
> >     I don't know what else might be available for navigating Lua, but
> >     the ctags web page at SourceForge says that it understands Lua, and
> >     you write that the tags appear fine, so I would suggest that you
> >     find out why your Lua tags aren't working as you expect and fix that
> >     problem.  If you post a short file containing Lua code and explain
> >     what you do and what happens when you try to jump to a tag in that
> >     code, we might be able to spot the problem and give you a solution.
> >
> >     Regards,
> >     Gary
>
> > thanks Gary. Then I show the code here:
> > the generated tag has a line looks like this:
> >
> >     TaskHandler.prizeTask .\init\taskHandler.lua /^function
> >     TaskHandler.prizeTask(plr, task)$/;" f
> >
> > and I have a function:
> >
> >     function Task:succeed()
> >
> >     debug_log("Task:succeed")
> >
> >     self.isSucceed = true
> >
> >     TaskHandler.prizeTask(self.owner, self)
> >
> >     self:eventOnSuccess()
> >
> >     if self.spanTimerId > 0 then self:clearSpanTimer() end
> >
> >     self.owner:addFinishedTask(self)
> >
> >     if self.entry.type == taskType.TASK_TYPE_MAIN then
> >
> >     self.owner:setSaveRecord("MainTask", self:getId(), 0)
> >
> >     else
> >
> >     end
> >
> >     if self.entry.nexttask ~= nil and self.entry.nexttask ~= 0 then
> >
> >     debug_log("self.owner:addTask")
> >
> >     self.owner:addTask(self.entry.nexttask)
> >
> >     end
> >
> >     end
> >
> >
> >
> > in the file task.lua in the subdirectory of where the tags file lies.
> While my
> > cursor on "prizeTask", I press Ctrl-], only to find it shows me an error
> that
> > can't find the tag: prizeTask. So it is.
>
> Thanks for the code.  I tried to replicate the problem but ctags is
> not generating the same tags for me as it did for you.
>
> I created a new directory for testing this and within that directory
> created a subdirectory, subdir.  I put your code into a file named
> task.lua in subdir.  In the top-level directory I executed
>
>    ctags -R .
>
> Here is the resulting tags file.
>
>    !_TAG_FILE_FORMAT       2       /extended format; --format=1 will not
> append ;" to lines/
>    !_TAG_FILE_SORTED       1       /0=unsorted, 1=sorted, 2=foldcase/
>    !_TAG_PROGRAM_AUTHOR    Darren Hiebert  /
> dhieb...@users.sourceforge.net/
>    !_TAG_PROGRAM_NAME      Exuberant Ctags //
>    !_TAG_PROGRAM_URL       http://ctags.sourceforge.net    /official site/
>    !_TAG_PROGRAM_VERSION   5.7     //
>    Task:succeed    subdir/task.lua /^    function Task:succeed()$/;"
> f
>
> As you can see, it contains only one tag.
>
> I opened a file in the top-level directory and added the line
>
>    Task:succeed
>
> Typing ^] over "Task" resulted in
>
>    E426: tag not found: Task
>
> and typing ^] over "succeed" resulted in
>
>    E426: tag not found: succeed
>
> I then executed
>
>    :set iskeyword+=:
>
> Typing ^] anywhere over "Task:succeed" then resulted in Vim jumping
> to the top of that function.
>
> [Time passes while I do other work and think some more.]
>
> I just appended those lines from your tags file to mine and added
> tabs between the fields.  Typing ^] over "TaskHandler" or
> "prizeTask" resulted in E426.  Then I executed
>
>    :set iskeyword+=.
>
> and tried again.  This time I got this error:
>
>    E429: File ".\init\taskHandler.lua" does not exist
>
> So I think that's the problem:  you need to have . in your
> 'iskeyword' option for Lua files.
>
> HTH,
> Gary
>
> --
> 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
>

-- 
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

Reply via email to