Por exemplo, eu gostaria de definir
set tabstop=4
set shiftwidth=4
Existe uma maneira de fazer algo como
set tabstop=4
set shiftwidth=tabstop
para que eu possa definir os dois valores alterando apenas um único número?
Por exemplo, eu gostaria de definir
set tabstop=4
set shiftwidth=4
Existe uma maneira de fazer algo como
set tabstop=4
set shiftwidth=tabstop
para que eu possa definir os dois valores alterando apenas um único número?
Respostas:
Você pode usar o let
comando.
Igual a:
let &shiftwidth = &tabstop
O &
especifica que o nome da variável é uma opção do Vim. Você também pode fazer :help let-option
para saber mais sobre isso:
:let &{option-name} = {expr1}
Set option {option-name} to the result of the
expression {expr1}. A String or Number value is
always converted to the type of the option.
For an option local to a window or buffer the effect
is just like using the |:set| command: both the local
value and the global value are changed.
Pode ser uma maneira melhor, mas você sempre pode fazer isso:
exec 'set shiftwidth=' . &tabstop
Especificamente neste caso:
http://vimhelp.appspot.com/options.txt.html#%27softtabstop%27 :
Quando 'sts' é negativo, o valor de 'shiftwidth' é usado.
http://vimhelp.appspot.com/options.txt.html#%27shiftwidth%27
Quando ['shiftwidth' for] zero, o valor 'ts' será usado.
&l:shiftwidth
apenas para alterar a variável local do buffer.