Para garantir que o comportamento não seja afetado pela minha configuração pessoal, desejo iniciar o Vim de maneira a ignorar todos os meus arquivos de configuração instalados pelo usuário, como se o Vim tivesse sido instalado pela primeira vez pela primeira vez e o usuário o executasse imediatamente.
Isso é abordado na FAQ, que sugere que a resposta é iniciar o Vim com o seguinte comando:
vim -u NONE -U NONE -N -i NONE
Isso ocorre na maior parte do caminho, mas a runtimepath
opção ainda contém ~/.vim
e, principalmente, ~/.vim/after
(por exemplo, se eu ativar a detecção de tipo de arquivo posteriormente e alterar o tipo de arquivo, o código ~/.vim/after/syntax/the_relevant_filetype.vim
será executado).
Posso solucionar esse problema específico invocando os seguintes comandos na inicialização *:
:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after
... mas não tenho certeza se:
- Esta é uma solução robusta: esses são os únicos caminhos que podem fazer com que a configuração do usuário entre em vigor? Existe mais alguma coisa que eu não tenha pensado?
- Existe uma maneira melhor de alcançar o resultado desejado.
* Ao usar --cmd
ou -u vimrc
argumentos shell, ou simplesmente digitando-los manualmente.
Edição : Aqui está um exemplo específico do tipo de problema que estou tentando corrigir. (Embora eu queira que a solução corrija outros possíveis problemas que ainda não tenha contado.):
Crie um arquivo ~ / .vim / after / ftplugin / c.vim, contendo o conteúdo:
noremap i :echom "This is not default behaviour"<CR>
Agora, temos algumas configurações instaladas pelo usuário que queremos ignorar. Vamos testar a solução sugerida pelo FAQ.
Execute o Vim com o comando:
vim -u NONE -U NONE -N -i NONE
Digite os comandos:
:filetype plugin on :set ft=c i
Comportamento desejado : o Vim deve entrar no modo Inserir. Isso é o que faria se não existisse configuração do usuário.
Comportamento observado : o Vim imprime "Este não é um comportamento padrão"
:cd ~
, por exemplo , mas também o local padrão do viminfo
arquivo está em $ HOME, o que pode causar o E138. Acho que criar um diretório novo e vazio e usá-lo para $ HOME pode ser a melhor solução.
-u NONE
?
/tmp
poderia ser melhor, foi o meu primeiro pensamento, mas depois escolhi / dev / null como um buraco negro. ... Ou algo assim HOME=$(mktemp -d) vim ...
.
-u NONE
? Depende do comportamento que você precisa, suponho.
HOME=/dev/null vim -u NONE
:?