Tuesday, December 1, 2009

Re: :let and :set with whitespaces

On 01/12/09 12:33, Aarto Matti wrote:
> Hi,
>
> I can freely use whitespaces with let command, both "let my_var = 1" and
> "let my_var=1" are equal correct, but something like "set tabstop = 4"
> is impossible. Any reason why there are such restrictions in VimL?

After ":let", whitespace can only happen as part of a single- or
double-quoted string. After ":set", quotes are not used, multiple
option=value operands can be used, and whitespace after the equal sign
terminates the value unless it is backslash-escaped:

:set option = value

is illegal unless 'option' exists as a String option AND 'value' exists
as an option-name, in which case it sets 'option' to the empty string,
and sets 'value' to TRUE if Boolean or displays its present value otherwise

:set option = "value"

(where 'option' is a String option) sets 'option' to the empty string,
and is followed by a Vim comment starting with a double quote.

:set list listchars=tab:\ \ ,eol:ś

sets Vim to display the end-of-line as ś and tabs normally (as between
one and 'tabstop' spaces), not as ^I (like with the tab: suboption
omitted) and not as something visible.

:set title=\ \ \ \ \ Hello

sets the 'title' option to the word "Hello" preceded by five spaces.

The "tradition" is to use spaces around the = of ":let", the operators
(such as + - * / == ==? != =~ !~ etc.) in expressions, but not after
":set" except of course if backslash-escaped as part of a String value.

I assume that these restrictions are inherited from Vi.


Best regards,
Tony.
--
"The first rule of magic is simple. Don't waste your time waving your
hands and hoping when a rock or a club will do."
-- McCloctnik the Lucid

--
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php

No comments:

Post a Comment