textwidth = 0 e wrapwidth = 0 em .vimrc.local não sendo respeitado


11

Eu tenho as seguintes linhas na parte inferior do meu .vimrc.local:

set textwidth=0 
set wrapmargin=0

No entanto, sempre que abro um novo arquivo, esses dois valores são definidos com seus padrões (72 e 2, respectivamente) e não com minhas configurações personalizadas. As outras configurações no meu arquivo .vimrc.local parecem estar definidas (guias, etc.), mas apenas essas duas continuam sendo redefinidas. Se eu inserir :source ~/.vimrc.localas configurações, mude e funcione corretamente.

Existe uma maneira de analisar o que está definindo alguma coisa quando o vim é iniciado? Eu suspeito que algum plugin ou configuração que acompanha o MacVim ou Janus esteja definindo essas opções, mas não sei como analisar todas as configurações de uma só vez.


Eu nunca tinha visto ~/.vimrc.localantes. A versão do Janus que eu encontrei a fonte (se existir) no final do vimrcarquivo (que é o destino do ~/.vimrclink simbólico que ele instala, se você usar o método de instalação). Talvez nem todas as versões do Janus façam isso - muitas pessoas parecem mesclar a que encontrei em seus garfos, mas não tenho idéia se essa é a "oficial" ou não. Só para esclarecer, onde você conseguiu seu Janus? Se for baseado no Git, qual commit você está usando?
Chris Johnsen

Vale a pena ler estas formações padrão
anishjp

Respostas:


13

Para descobrir onde 'textwidth' e 'wrapmargin' foram definidos por último, execute

:verbose set tw? wm?

Para ver quais arquivos foram originados, execute

:scriptnames

Se isso não for suficiente para encontrar o problema, você poderá usar a opção -V quando o Vim iniciar e registrar os vários eventos de inicialização em um arquivo. Vejo

:help -V

Além disso, os valores padrão para 'textwidth' e 'wrapmargin' são ambos 0, não 72 e 2; portanto, algo já os está configurando para valores não padrão. Para os valores padrão, consulte

:help 'textwidth'
:help 'wrapmargin'

PS
Outra coisa a verificar é a possibilidade de um plug-in de tipo de arquivo estar fazendo essas configurações. O :verbose set ...comando deve mostrar onde essas configurações estão sendo feitas, mas você também pode executar

:set filetype?

para ver o tipo de arquivo atual e aberto $VIMRUNTIME/ftplugin/<filetype>.vim, onde <filetype> é o valor da opção 'filetype' encontrada acima, para ver se essas configurações estão sendo feitas lá. Você pode substituir as configurações feitas por um plug-in de tipo de arquivo, colocando-as em um arquivo criado com o nome ~ / .vim / after / ftplugin / <filetype> .vim. Vejo

:help filetype-overrule

item # 3.


Acontece que o problema foi resolvido ~/.vimrc, que veio de Janus. Eu esperava source ~/.vimrc.localque fosse a última coisa que fosse executada, mas estava definindo aqueles dois com o aucomando. Parece que as configurações ~/.vimrccontêm muitas opções estilísticas das pessoas que mantêm Janus. Obrigado por escrever uma resposta que me ajudará a solucionar esses problemas no futuro. :)
Ian Potter

1
Eu também vim aqui devido a esse problema no Janus. Mas observe que, no mais recente, o Janus ~/.vimrc.afteré executado por último, no entanto, houve, por exemplo, uma ação específica do python acontecendo, então eu tive que usar, em au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=0vez de simplesmente set textwidth=0, nesse arquivo.
philfreo

8

Resolvi isso adicionando o seguinte ao meu arquivo .vimrc.local :

" Disable annoying auto line break
fu! DisableBr()
    set wrap
    set linebreak
    set nolist  " list disables linebreak
    set textwidth=0
    set wrapmargin=0
    set fo-=t
endfu

" Disable line breaks for all file types
:au BufNewFile,BufRead *.* call DisableBr()

Isso deve desativar quebras de linha automáticas indesejadas para todos os tipos de arquivo


1
Obras em .vimrc.after ao usar Janus
Eric Yang

1
Huzzah, obrigado! Essa foi a única coisa que funcionou para mim. Por alguma razão (eu não conseguia entender), o macvim estava substituindo a largura de texto no meu vimrc para arquivos .txt.
Matt queima

0

Isso deve ajudar:

(Talvez BufAdde BufCreateseja redundante, mas eu o adicionei por precaução)

function! DisableWrap()
    set nowrap
    set nolinebreak
    set formatoptions-=cro
endfunction
autocmd BufNew,BufAdd,BufCreate,VimEnter * call DisableWrap()
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.