About using vartabstop

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

About using vartabstop

Lifepillar
There's a meme (if it may be called so) circulating on Twitter
about using Fibonacci sequences for indentation. Just for fun,
I wanted to see if it could be implemented using the vartabs
feature. I thought that this would do it (for C files):

set shiftwidth=0
set noexpandtab
set vartabstop=1,1,2,3,5,8,13,21,34
set autoindent
set smartindent
set ft=c

With the above settings, it appears that the value of tabstop
is used. This seems to agree with shiftwidth's documentation:
“When [shiftwidth is] zero the 'ts' value will be used”, but
not with tabstop's help: “the value of 'tabstop' will be
ignored while 'vartabstop' is set”. Putting together the two,
I would expect the above to use vartabstop.

Am I missing something?

Thanks,
Life.

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: About using vartabstop

David Woodfall
On Wednesday 29 August 2018 18:47,
Lifepillar <[hidden email]> put forth the proposition:
> There's a meme (if it may be called so) circulating on Twitter
> about using Fibonacci sequences for indentation. Just for fun,
> I wanted to see if it could be implemented using the vartabs
> feature. I thought that this would do it (for C files):
>
> set shiftwidth=0
> set noexpandtab

Won't this change *all* tab indents to the same size? Surely you need
to use expandtab?

> set vartabstop=1,1,2,3,5,8,13,21,34
> set autoindent
> set smartindent
> set ft=c
>
> With the above settings, it appears that the value of tabstop
> is used. This seems to agree with shiftwidth's documentation:
> “When [shiftwidth is] zero the 'ts' value will be used”, but
> not with tabstop's help: “the value of 'tabstop' will be
> ignored while 'vartabstop' is set”. Putting together the two,
> I would expect the above to use vartabstop.
>
> Am I missing something?

I think it may need more work than that, but I may be wrong.

You may need to indentexpr to a custom function and use that
to set ind.

See :help indentexpr

-Dave

--

> I get the following error messages at bootup, could anyone tell me
> what they mean?
> fcntl_setlk() called by process 51 (lpd) with broken flock() emulation
They mean that you have not read the documentation when upgrading the
kernel.
  -- seen on c.o.l.misc

                                                            .--.  oo
                                                           (____)//
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: About using vartabstop

Christian Brabandt
In reply to this post by Lifepillar

On Mi, 29 Aug 2018, Lifepillar wrote:

> There's a meme (if it may be called so) circulating on Twitter
> about using Fibonacci sequences for indentation. Just for fun,
> I wanted to see if it could be implemented using the vartabs
> feature. I thought that this would do it (for C files):
>
> set shiftwidth=0
> set noexpandtab
> set vartabstop=1,1,2,3,5,8,13,21,34
> set autoindent
> set smartindent
> set ft=c
>
> With the above settings, it appears that the value of tabstop
> is used. This seems to agree with shiftwidth's documentation:
> “When [shiftwidth is] zero the 'ts' value will be used”, but
> not with tabstop's help: “the value of 'tabstop' will be
> ignored while 'vartabstop' is set”. Putting together the two,
> I would expect the above to use vartabstop.
>
> Am I missing something?

I am not sure. It might be, that the functionality of using the tabstop
setting when shiftwidth is zero is indeed missing from vartabstop,
because this was done some time after the vartab patch has been created
and that feature has than not made it back into the vartabs patch.

I'll have a look at it in more detail later.

Best,
Christian
--
In der Politik ist nicht alles richtig, was rechtens ist.
                -- Rezzo Schlauch

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: About using vartabstop

David Woodfall
In reply to this post by David Woodfall
On Thu, 30 Aug 2018 00:20:18 +0100
David Woodfall <[hidden email]> wrote:

> On Wednesday 29 August 2018 18:47,
> Lifepillar <[hidden email]> put forth the proposition:
> > There's a meme (if it may be called so) circulating on Twitter
> > about using Fibonacci sequences for indentation. Just for fun,
> > I wanted to see if it could be implemented using the vartabs
> > feature. I thought that this would do it (for C files):
> >
> > set shiftwidth=0
> > set noexpandtab  
>
> Won't this change *all* tab indents to the same size? Surely you need
> to use expandtab?
>
> > set vartabstop=1,1,2,3,5,8,13,21,34
> > set autoindent
> > set smartindent
> > set ft=c
> >
> > With the above settings, it appears that the value of tabstop
> > is used. This seems to agree with shiftwidth's documentation:
> > “When [shiftwidth is] zero the 'ts' value will be used”, but
> > not with tabstop's help: “the value of 'tabstop' will be
> > ignored while 'vartabstop' is set”. Putting together the two,
> > I would expect the above to use vartabstop.
> >
> > Am I missing something?  
>
> I think it may need more work than that, but I may be wrong.
>
> You may need to indentexpr to a custom function and use that
> to set ind.
>
> See :help indentexpr

It looks like someone else saw that twitter post :)

https://github.com/dodie/vim-fibo-indent

Related:

https://github.com/dodie/vim-disapprove-deep-indentation

ಠ_ಠ

-Dave

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: About using vartabstop

h_east
In reply to this post by Christian Brabandt
Hi,

2018-8-30(Thu) 14:36:09 UTC+9 Christian Brabandt:

> On Mi, 29 Aug 2018, Lifepillar wrote:
>
> > There's a meme (if it may be called so) circulating on Twitter
> > about using Fibonacci sequences for indentation. Just for fun,
> > I wanted to see if it could be implemented using the vartabs
> > feature. I thought that this would do it (for C files):
> >
> > set shiftwidth=0
> > set noexpandtab
> > set vartabstop=1,1,2,3,5,8,13,21,34
> > set autoindent
> > set smartindent
> > set ft=c
> >
> > With the above settings, it appears that the value of tabstop
> > is used. This seems to agree with shiftwidth's documentation:
> > “When [shiftwidth is] zero the 'ts' value will be used”, but
> > not with tabstop's help: “the value of 'tabstop' will be
> > ignored while 'vartabstop' is set”. Putting together the two,
> > I would expect the above to use vartabstop.
> >
> > Am I missing something?
>
> I am not sure. It might be, that the functionality of using the tabstop
> setting when shiftwidth is zero is indeed missing from vartabstop,
> because this was done some time after the vartab patch has been created
> and that feature has than not made it back into the vartabs patch.
>
> I'll have a look at it in more detail later.
I also tried Fibonacci indent with the vartabstop option yesterday. 😃
https://twitter.com/h_east/status/1034606768226070528 (Japanese)

It worked well for files already indented with tabs, but auto indentation in insert mode did not work well.

I investigated for a moment but I could not fix it.
Probably we will fix it by modifying tabstop_padding().

--
Best regards,
Hirohito Higashi (h_east)

--
--
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 [hidden email].
For more options, visit https://groups.google.com/d/optout.