Thursday, May 9, 2019

Re: searching one word containing # with touch *

On jeu., 2019-05-09 at 17:37 +0200, 'Andy Wokula' via vim_use wrote:
> Am 07.05.2019 um 20:52 schrieb Mathieu Roux:
> > On lun., 2019-05-06 at 20:52 +0200, 'Andy Wokula' via vim_use
> > wrote:
> > > Am 06.05.2019 um 15:33 schrieb Tony Mechelynck:
> > > > On Sun, May 5, 2019 at 9:35 PM Gary Johnson <
> > > > garyjohn@spocom.com>
> > > > wrote:
> > > > >
> > > > > On 2019-05-05, Mathieu Roux wrote:
> > > > > > On dim., 2019-05-05 at 18:50 +0200, Tony Mechelynck wrote:
> > > > > > > On Sun, May 5, 2019 at 6:44 PM Mathieu Roux wrote:
> > > > > > > >
> > > > > > > > Hello,
> > > > > > > > I would like to search the word under my prompt on vim.
> > > > > > > > For
> > > > > > > > this, i can press touch *. But, if the word i want to
> > > > > > > > search is
> > > > > > > > #foo, as an exemple, vim only searches word foo
> > > > > > > > (without
> > > > > > > > hashtag). In fact, hashtag is not considered in the
> > > > > > > > word, which
> > > > > > > > is confirmed when i try to go to the next word from #
> > > > > > > > with w.
> > > > > > > > Do you know how i can search effectively #titi by
> > > > > > > > pressing * on
> > > > > > > > my keyboard?
> > > > > > > > Thanks.
> > > > > > > > Mathieu Roux
> > > > > > >
> > > > > > > see :help *
> > > > > >
> > > > > > But how can i change keywords just for # and - (i want for
> > > > > > exemple
> > > > > > #foo-bar to be just one word)? i tried before but i did not
> > > > > > succeed. The problem is that i also want to use tags with
> > > > > > CTRL+],
> > > > > > so maybe i cannot do
> > > > > > set iskeyword=""
> > > > > > as far as i understand.
> > > > >
> > > > > :set iskeyword+=#
> > > > > :set iskeyword+=-
> > > > >
> > > > > seems to do it.
> > > > >
> > > > > Regards,
> > > > > Gary
> > > >
> > > > And if you want to do it easily and reversibly, you can assign
> > > > it to
> > > > a key: e.g. (untested)
> > > >
> > > > :map <F4> :set isk+=#-<Bar>normal *<CR>
> > > > :map <S-F4> :set isk-=# isk-=-<Bar>normal <C-]><CR>
> > > >
> > > > Best regards,
> > > > Tony.
> > >
> > > Maybe it's a little more complicated.
> > >
> > > When you add characters to 'isk' with the star command `*'
> > > and again remove them when going to a tag with Ctrl-],
> > > then suddenly `#foo' is no longer found, because the pattern
> > > \<#foo\>
> > > ceases to match (`\<' only matches before an 'isk' character).
> > > Searching for
> > > #foo\>
> > > instead should be fine.
> > >
> > > almost got a plugin out of this
> > > https://gist.github.com/Houl/7b3f46c42fbb8fbe3d1d6bd54204ab51
> > >
> > > --
> > > Andy
> >
> > Waaaaaaa! you worked so much for me!
> > I am sorry not be intelligent enough just to understand how to use
> > your
> > file? Should i copy in my ~/.vimrc file?
>
> For a start, you can put the file in a plugin folder, eg
> ~/.vim/plugin/mtc147.vim
>
> and then in your .vimrc, you can add a line
> map <F4> <Plug>(roux-search-*)
>
> (basically the instructions inside the script tell you the same)
>
> > And what does it aim to do?
>
> It's a tuned version of the previous poster's
> map <F4> :set isk+=#-<Bar>normal *<CR>
> suggestion:
> - sets and immediately restores 'iskeyword'
> - adjusts the last search pattern set by the star command `*'
>
> eg if after `:setl isk+=#' the search pattern becomes `\<#foo\>',
> then
> the pattern will be adjusted to `#foo\>' (because `#' is no longer an
> 'isk' character).
>
> > Best regards,
> > Mathieu
>
> --
> Andy
>
> --


So i tried it... that is great, doing what i want! But of course i
don't know why it works!

You are right, i am guilty, i should have read the beginning of the
file to know how to use it !

I have so many questions:


1) map <F4> :set isk+=#-<Bar>normal *<CR>

Vim's help about "bar" does not allow me to understand what it means.

2) "adjusts the last search pattern set by the star command `*'" ->
what do you mean? * and F4 do different things, right?

3) `\<#foo\>' -> why \< and \>... i really don't understand why you
write it. I want just to find #foo...?

4) You script allow me to do great things. As i said in another
message, i have a long text file divided in small articles, and i want
to move between articles easily with something like hypertext links. I
know how i can do it with html pages; but now i prefer to navigate
easily in my text file with vim.

I would like maybe 3 kinds of links.

a) structure links
b) title links
c) keywords

With your script, you allow me to do c). For exemple, i can move easily
between all articles which have the keywords #sunny-may, for exemple...

One article can be designed like this:

===============================================================
It rains today
/abc/def/ghi/klm
#foo, #bar, #holidays, #mathieu
see also: Good weather today

blablablablabla

jeudi 9 mai 2019
===============================================================

- It rains today is the title
- /abc/def/ghi/klm is the localisation
abc is the part
def is the chapter
ghi is the section
klm is the subsection

When i press F4 (or another touch) when i am on "abc", i want to
navigate between all articles which are in the part "abc".
When i press F4 (or another touch) when i am on "def", i want to
navigate between all articles which are in the chapter "abc/def".
When i press F4 (or another touch) when i am on "ghi", i want to
navigate between all articles which are in the section "abc/def/ghi".
When i press F4 (or another touch) when i am on "klm", i want to
navigate between all articles which are in the subsection
"abc/def/ghi/klm".

That is what i call "structure links" (a).

And as for "title links" (b), i would like that "Good weather today" is
colored in blue, and allow me with Ctrl + ] to go to the article "Good
weather today".

I was suggested to write one tag file, with a script which uses stream
edition, of with ctag, but i don't know it is a good idea.

I don't know how vim's help work.
For exemple, :help mouse gives something, but not every occurence of
mouse is colored is blue. How is it possible?
I know what i want, but i am really in the fog about how i can do it :-
(


Thanks,
Mathieu

--
--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/585d330ddaba351069ded7f0f26be186f8d74937.camel%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments: