Henry wrote:
Hi,
I have a bunch TCL procs defined with :: in the name.
ie: abc::efg.
I created a tags file, inside the tag file, it has
abc::efg....
When I try to jump to this proc "abc::efg" in vim,
using CTRL-], it can't find it. If cursor is under
abc, then I get an message "E426: tag not found: abc"
If the cursor is under efg, then I get a message
"E426: tag not found: efg". So it seems that vim can't
trace the tag properly. It should use the entire
string "abc::efg" to search for the tag.
Anybody has a solution??
Thanks.
I think it has something to do with your 'iskeyword' option. Try using
:setlocal isk+=:
(adding the colon to the 'iskeyword' option) on the files which have that kind
of tags. Or, if it is for any TCL files, you might want to add the above
command (without the initial colon) in a file named (on Unix-like systems)
~/.vim/after/ftplugin/tcl.vim or (on other systems)
~/vimfiles/after/ftplugin/tcl.vim (in both cases in "vim" notation).
Create the file and any directories in its path if they don't exist yet. You
might for instance paste the following lines as a *.vim script and source it
(this is untested):
if has("unix")
!mkdir -p ~/.vim/after/ftplugin
let s:vimdir = ".vim"
else
silent! !mkdir $HOME/vimfiles
silent! !mkdir $HOME/vimfiles/after
silent! !mkdir $HOME/vimfiles/after/ftplugin
let s:vimdir = "vimfiles"
endif
exe 'new ~/' . s:vimdir . '/after/ftplugin/tcl.vim'
$put ='setlocal isk+=:'
wq
See
:help 'iskeyword'
:help after-directory
etc.
Best regards,
Tony.