textwidth = 0 i wrapwidth = 0 w .vimrc.local nie są przestrzegane

11

Mam następujące wiersze na dole mojego pliku .vimrc.local:

set textwidth=0 
set wrapmargin=0

Jednak za każdym razem, gdy otwieram nowy plik, obie wartości są ustawiane na wartości domyślne (odpowiednio 72 i 2), a nie moje ustawienia niestandardowe. Inne ustawienia w moim pliku .vimrc.local wydają się być ustawione (tabulatory itp.), Ale tylko te dwa są resetowane. Jeśli wejdę, :source ~/.vimrc.localustawienia zmienią się i będą działać poprawnie.

Czy istnieje sposób, aby spojrzeć na to, co cokolwiek ustawia, gdy uruchamia się vim? Podejrzewam, że niektóre wtyczki lub ustawienia dostarczane z MacVimem lub Janusem ustawiają te opcje, ale nie wiem, jak patrzeć na każde ustawienie naraz.

Ian Potter
źródło
Nigdy wcześniej nie widziałem ~/.vimrc.local. Wersja Janusa, że znalazłem źródeł, które (jeśli istnieje) na końcu swojego vimrcpliku (co jest celem tego ~/.vimrcdowiązania symbolicznego, który instaluje, jeśli używasz jej metody instalacji). Może nie wszystkie wersje Janusa to robią - wydaje się, że wiele osób łączy tę, którą znalazłem w swoich widelcach, ale nie mam pojęcia, czy jest to „oficjalna”, czy nie. Żeby wyjaśnić, skąd masz Janusa? Jeśli jest oparty na Git, jakiego zatwierdzenia używasz?
Chris Johnsen,
Warto przeczytać te opcje formatu defaul
anishjp

Odpowiedzi:

13

Aby dowiedzieć się, gdzie „szerokość tekstu” i „wrapmargin” zostały ustawione jako ostatnie, uruchom

:verbose set tw? wm?

Aby zobaczyć, jakie pliki zostały pozyskane, uruchom

:scriptnames

Jeśli to nie wystarczy, aby znaleźć problem, możesz użyć opcji -V podczas uruchamiania Vima i zapisać różne zdarzenia startowe w pliku. Widzieć

:help -V

Ponadto domyślne wartości „szerokości tekstu” i „wrapmargin” wynoszą 0, a nie 72 i 2, więc już coś ustawia je na wartości inne niż domyślne. Aby uzyskać wartości domyślne, patrz

:help 'textwidth'
:help 'wrapmargin'

PS.
Można jeszcze sprawdzić, czy wtyczka typu pliku wprowadza te ustawienia. :verbose set ...Polecenie powinno pokazać, gdzie ustawienia te są wykonywane, ale można również wykonać

:set filetype?

aby zobaczyć bieżący typ pliku, a następnie otwórz $VIMRUNTIME/ftplugin/<filetype>.vim, gdzie <typ pliku> jest wartością opcji „filetype” znalezionej powyżej, aby sprawdzić, czy te ustawienia są tam dokonywane. Możesz zastąpić ustawienia wprowadzone przez wtyczkę typu pliku, umieszczając ustawienia w utworzonym pliku o nazwie ~ / .vim / after / ftplugin / <filetype> .vim. Widzieć

:help filetype-overrule

pozycja nr 3.

garyjohn
źródło
Okazało się, że był to problem ~/.vimrc, który przyszedł od Janusa. Spodziewałem się, że source ~/.vimrc.localbędzie to ostatnia rzecz, która się wykonała, ale ustawianie tych dwóch było aupoleceniem. Wygląda na to, że ustawienia ~/.vimrczawierają wiele stylistycznych wyborów ludzi, którzy utrzymują Janusa. Dziękujemy za napisanie odpowiedzi, która pomoże mi rozwiązać te problemy w przyszłości. :)
Ian Potter
1
Przyjechałem tu również z powodu tego problemu w Janus. Ale zauważ, że w najnowszej wersji Janus ~/.vimrc.afterjest uruchamiany jako ostatni, jednak zdarzało się na przykład działanie specyficzne dla Pythona, więc musiałem użyć au FileType python set softtabstop=4 tabstop=4 shiftwidth=4 textwidth=0raczej niż tylko set textwidth=0tego pliku.
philfreo
8

Rozwiązałem ten problem, dodając następujące elementy do mojego pliku .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()

To powinno wyłączyć niechciane automatyczne dzielenie wierszy dla wszystkich typów plików

Siavash Ghorbani
źródło
1
Działa w .vimrc. Po użyciu Janusa
Eric Yang,
1
Huzzah, dzięki! To była jedyna rzecz, która działała dla mnie. Z jakiegoś powodu (nie mogłem wypracować) macvim przesłaniał szerokość tekstu w moim vimrc dla plików .txt.
Matt pali
0

To powinno pomóc:

(Może BufAddi BufCreatejest zbędne, ale dodałem to na wszelki wypadek)

function! DisableWrap()
    set nowrap
    set nolinebreak
    set formatoptions-=cro
endfunction
autocmd BufNew,BufAdd,BufCreate,VimEnter * call DisableWrap()
meain
źródło