Pergunta

Eu liguei filetype plugin para alguns trilhos vim plugins que eu adicionei, mas um efeito colateral esse parece ser o de que agora autocommenting tem sido habilitado em todos os tipos de arquivos (por exemplo, se eu começar uma linha com #, a próxima linha, por Entrar em modo de inserção ou O, etc.para entrar no modo de inserção, também vai ter um #).

Eu encontrei um guia para desactivar o auto-comentar formatoptions, e acrescentou o seguinte a minha .vimrc:

au FileType * setlocal formatoptions-=cro

No entanto, eu ainda estou com alguns problemas -- a menos que explicitamente :source .vimrc, (ou introduza o setlocal ... diretamente), não tendo efeito.Decidi que este é o caso, porque vim ftplugins estão substituindo as minhas opções com as suas próprias.

Então eu encontrei um segundo guia que fala sobre o uso de um depois ftplugin script para fazer alterações após o ftplugin scripts de execução, no entanto, a sua solução é criar links simbólicos para cada tipo de arquivo em ~/.vim/after/ftplugin para uma central de arquivo, e este parece ser desajeitados para mim.

Existe alguma maneira de criar um genérico de pós-ftplugin script ou estou a abordar este problema de maneira incorreta?Qualquer ajuda seria apreciada.

Foi útil?

Solução

Como sobre um "depois" plugin?Criar um arquivo no ~/.vim/after/plugin/ chamado noAutoComments.vim (ou o que) e coloque seu autocmd em que?

Editar:

A razão pela qual isso funciona?Só estou supondo aqui, mas eu tenho a sensação de que o autocmd no ~/.vimrc arquivo está sendo removida por algum outro arquivo (mas antes o "depois" arquivos estão sendo originados).

Acabei removendo o meu ~/.vim diretório de e substituiu o meu ~/.vimrc com os 3 seguintes linhas:

filetype plugin on
syntax on
au FileType * setlocal formatoptions-=cro

Somente com estas linhas no meu ~/.vimrc e não ~/.vim/ diretório, o autocmd parece funcionar como o esperado (Vim 7.1).

Para qualquer arquivo que eu editar:

:verbose set formatoptions?
formatoptions=ql
      Last set from ~/.vimrc

Eu ainda tenho para determinar qual o ficheiro (plugin) está causando esse problema, no entanto.

Outras dicas

Eu fiz alguma investigação mais e parece que a localização da minha autocmd dentro do meu .arquivo vimrc determina se formatoptions será substituído por vim ftplugins ou não.Usando vim --noplugin para desativar todos os plugins externos, encontrei os seguintes resultados:

Se o meu vimrc se parece com:

au FileType * setl fo-=cro
filetype plugin indent on

O resultado de :verbose set fo? é:

formatoptions=croql
  Last set from /usr/share/vim/vim72/ftplugin/ruby.vim

No entanto, se as linhas no meu vimrc são invertidas:

filetype plugin indent on
au FileType * setl fo-=cro

O resultado de :verbose set fo? é:

formatoptions=ql
  Last set from ~/.vimrc

...qual é o resultado desejado.Assim, parece que o autocmd deve ser especificado após a filetype plugins estão habilitados.

Uma outra razão, esta pode não ser a surtir efeito...

A partir de :he :set-=:

            When the option is a list of flags, {value} must be
            exactly as they appear in the option.  Remove flags
            one by one to avoid problems.

Eu

    " Turn off auto-commenting
    au FileType * setlocal formatoptions-=c
    au FileType * setlocal formatoptions-=r
    au FileType * setlocal formatoptions-=o

porque eu tenho que correr para isso.

Usando um dos vários autocmd eventos para definir a opção de configuração deve funcionar se você encontrar o caminho certo, mas que eu ia começar a por em execução:

:verbose set formatoptions?

Isto irá dizer-lhe onde a opção foi definida, o que pode torná-lo mais fácil para determinar qual autocmd usar.Como alternativa, se você não se importa um pouco de menor hacking, do jeito que eu provavelmente iria fazer, é só descobrir onde ele está definido no plugin e comente essa linha (e fazer uma nota no caso de você atualizar o plugin).Você também pode contatar o plugin do autor e pedir-lhes para torná-lo uma opção configurável.

Disponível autocmd eventos, leia este:

:help {event}

Eu tentei as soluções propostas por muitos, mas nenhum deles funcionou para mim, mas eu encontrei uma solução simples, ou seja, no seu ~/.bash_aliases:

    # vim without auto comment
    alias vi="vi +'set fo-=cro'"

Eu estava lutando com esse problema e eu, finalmente, trabalha com as seguintes linhas:

syntax on
filetype on
filetype plugin on
au FileType * setlocal formatoptions-=cro

Eu acho que a chave aqui é que o autocmd é realizada após a filetype plugin on.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top