Como você está dizendo ao vim para executar alguns comandos de um arquivo, você pode não ter controle ou alguém poderia ter escrito. Digamos que você pegue algo no github e, no fundo da árvore, exista um .vimrc. Se você vim algo nesse diretório e o possui set exrc
, está dizendo ao vim para executar os comandos no .vimrc que você obteve no github. Você confia completamente em quem criou esse arquivo? Porque você está deixando o vim executar quaisquer comandos que eles colocarem nesse arquivo. Ou diga que você está em uma máquina usada regularmente por várias pessoas (elas ainda existem :-)) e alguém pede para você procurar algo em seu diretório pessoal (ou / tmp, ou em qualquer lugar em que possam escrever). Você cd lá, é um arquivo de texto, então você faz um vim file
. Comset exrc
, você também está dizendo ao vim para executar os comandos em .vimrc nesse diretório. Você confia completamente nesse usuário, ou em um diretório gravável mundial como / tmp, em todos os usuários que podem efetuar login nessa máquina?
set secure
atenua um pouco o problema limitando algumas coisas que podem ser feitas em um .vimrc, mas se o .vimrc por diretório puder pertencer a você (como no exemplo do github, ou em uma máquina multiusuário, na qual alguns usuários pode chown arquivos para você), set secure
é ignorado, então você ainda tem os mesmos problemas.