Wednesday, June 19, 2013

Re: Where to put "set iskeyword+=_" or remove "iskeyword-=_

On Wednesday, June 19, 2013 3:42:37 PM UTC-5, Paul wrote:
> Coot, I think the problem is that I am working with vim 7.3, patches 1-46. It is a locked down environment, so I've given up trying to upgrade for the next few years (which is not to say that I haven't submitted a request). There is no tex_isk in .../doc/syntax.txt in my install. The commands
>
> echo tex_isk
> echo g:tex_isk
>
> yield the error messages:
>
> E121: Undefined variable: tex_isk
> E15: Invalid expression: tex_isk
>
> E121: Undefined variable: g:tex_isk
> E15: Invalid expression: g:tex_isk
> --------------------------------------------------
> Ben, Gary,
>
> I don't have the authority to write to system-wide files. I tried autocommands and ~/vimfiles/after/syntax/tex.vim. No luck so far. In both cases, the result is that "setg isk?" and "setl isk?" show an underscore *before* enabling syntax, but the local version loses underscore after enabling syntax. I can tell that the local version takes precedence because underscore is no longer a keyword character, based on the fact that i_ctlr-p and i_ctrl-n does word completion only upto an underscore.
>

How do you enable syntax? Are you setting it on manually? Or do you have a "syntax on" somewhere in your _vimrc?

> Here are the details behind my attempt at using autocommand and ~/vimfiles/after/syntax/tex.vim.
>
> 1 ~/vimfiles/after/syntax/tex.vim
> 2 -------------------------------
> 3 setg isk+=_
> 4 setlocal isk+=_
> 5

This should have worked. Can you check with :scriptnames whether this file actually gets sourced? Hod did you determine the ~ directory? Maybe Vim is looking in a place you didn't expect for $HOME.

> 6 ~/.vim/after/syntax/tex.vim
> 7 ---------------------------
> 8 setg isk+=_
> 9 setlocal isk+=_
> 10

This should work on Unix-like systems but not on Windows, IIUC.

> 11 ~/_vimrc
> 12 --------
> 13 autocmd BufNewFile,BufRead,BufWinEnter *.tex setl isk+=_ | setg isk+=_
> 14 autocmd BufNewFile,BufRead,BufWinEnter *.bib setg isk+=_ | setl isk+=_
> 15 filetype on
> 16 au Syntax * setl isk+=_
>

Line 16 should work, at least if "syntax on" is set somewhere above. You should actually be able to be more selective, with "au Syntax tex setl isk+=_" instead of matching ALL syntaxes.

> I bastardized lines 13-14 from code higher up in the _vimrc, not sure if it is kosher.
>

They look fine to me, and the BufWinEnter should even take care of overriding any modelines.

In summary: you are using 3 methods simultaneously that each ought to be working if the files are actually being sourced. Double-check that these files are being sourced using :scriptnames. If the files do actually show up, try the :verbose set isk? command again. Maybe you can find a specific problematic line.

--
--
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 because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment