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.


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.


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


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()
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.