O cpo & vim é uma sintaxe especial?

13

Nos scripts, é costume fazer algo como:

let s:save_cpo = &cpo
set cpo&vim

... script ...

let &cpo = s:save_cpo

Para garantir o modo nocompatível para o script.

É:

set cpo&vim

algum tipo de sintaxe especial, como em foo & bar? Ou é mais como um comando, linha de gatilho ou algo mais?

Runium
fonte

Respostas:

13

Sim, é uma sintaxe especial para redefinir as opções para os padrões do Vim. De :help :set-&vim:

:se[t] {option}&        Reset option to its default value.  May depend on the
                        current value of 'compatible'. {not in Vi}
:se[t] {option}&vi      Reset option to its Vi default value. {not in Vi}
:se[t] {option}&vim     Reset option to its Vim default value. {not in Vi}

:se[t] all&             Set all options, except terminal options, to their
                        default value.  The values of 'term', 'lines' and
                        'columns' are not changed. {not in Vi}

Eu o encontrei digitando :help &vim(que também vai para :help :set-&vim) :-)

Martin Tournoij
fonte
4
Obrigado, meu mal. Eu estive olhando cpo, vimdoc.sourceforge.net/htmldoc/usr_41.html#use-cpo-save etc.
Runium
1

cpomeios compatible optione &variável de opção de meios, portanto, &cporepresenta o valor da opção compatível.

set cpo&vimé uma sintaxe especial que informa ao vim para redefinir a opção cpocujo padrão é aABceFs.

Veja o documento em :h cpo

hw3a
fonte