Podczas porównywania 2 plików w VIM, wolę linie do zawinięcia. Jednak vimdiff domyślnie ustawia wrap wrap na off.Wymuszanie vimdiff do zawijania linii?
Czy istnieje sposób automatycznego ustawiania zawijania linii dla każdego pliku różnicowego?
Podczas porównywania 2 plików w VIM, wolę linie do zawinięcia. Jednak vimdiff domyślnie ustawia wrap wrap na off.Wymuszanie vimdiff do zawijania linii?
Czy istnieje sposób automatycznego ustawiania zawijania linii dla każdego pliku różnicowego?
używam następujące:
autocmd FilterWritePre * if &diff | setlocal wrap< | endif
FilterWritePre
jest wyzwalany tuż przed wygenerowany diff są zapisywane w buforze, a setlocal wrap<
kopiuje wartość globalna wrap
. Oczywiście można też po prostu wymusić setlocal wrap
.
Dziękuję bardzo! Właśnie tego szukałem. Chciałbym zagłosować, ale nie mogę (zbyt nowe) ... – mgouin
Nie wiem dlaczego, ale to nie działa. Używam vim 7 na komputerze debian. user2442259 Odpowiedź działa. – eddy147
@ eddy147 Czy Twoje ustawienie globalne to 'wrap' lub' nowrap'? Jeśli to drugie, spróbuj tego samego 'autocmd' z' setlocal wrap' zamiast 'setlocal wrap <'. –
Możesz umieścić następujące elementy w swoim vimrc.
au VimEnter * if &diff | execute 'windo set wrap' | endif
Właściwie to działa dla mnie i nie jest to taka, która jest akceptowaną odpowiedzią. – BHS
Kiedy Vim jest już uruchomiony, polecenia, aby rozpocząć diff i zawijanie są, każdy z plików podzielonym oknie:
:diffthis
:set wrap
Jednak jest nieprawidłowo wyświetlany diff + okład:
Jeśli masz długą linię na jednym pliku i krótką lub brakującą linię na drugiej, to linia długa zajmie, powiedzmy, 2 linie na pierwszej stronie, przez krótką lub brakującą linię zajmie tylko 1 linię na drugim bok.
Powoduje to przesunięcie w pionie dwóch plików o . Jasne, kolory pomagają wizualnie zrekompensować tę zmianę. Ale na kilka linii różnicy przesunięcie może być wyższe niż wysokość okna, przez co różnica jest nieczytelna.
Pytanie nie jest w pełni rozwiązane ... Proszę o poradę.
': zestaw owijania owijania windo in w obydwa podziały. –
Musiałem rozwiązać tę kwestię dla demo gdzie chciałem vimdiff
zawinąć tylko kiedy rozpoczęła od pewnego terminalu.
końcu uciekają na surowego:
alias vimdiff='vimdiff +"windo set wrap"'
vimdiff file.orig file
Można uruchomić ten
vimdiff -c 'set wrap' -c 'wincmd w' -c 'set wrap' file1 file2
Dzięki za wejście. Działa tylko wtedy, gdy vim jest uruchamiany w trybie diff. Interesuje mnie również wymuszanie zawijania wierszy, gdy diff jest uruchamiany z poziomu vima. Czy jest to również możliwe z podobnego polecenia? Dzięki! – mgouin