Jak rozwinąć / zwinąć sekcje diff w Vimdiff?
Zacząłem używać vimdiff dzisiaj i chciałem zrobić kilka rzeczy, które brałem za pewnik w edytorach diff opartych na systemie Windows (jak Rozwiń / Zwiń sekcję diff, mieć pełne rozszerzenie pliku / tylko diffy z 3 liniami kontekstu powyżej lub poniżej, itp.). Obecnie znam tylko następujące komendy:
Skróty Klawiaturowe:
do - pobiera zmiany z innego okna do bieżącego okna.
dp - Umieść zmiany z bieżącego okna do drugiego okna.
]c - przejdź do następnej zmiany.
[c - przejdź do poprzedniej zmiany.
-
CTRL+W, w - Przełącz na inne okno dzielone (CTRL+W, CTRL+w robi to samo rzecz, w przypadku, gdy puścisz klawisz CTRL nieco później)
Czy ktoś mógłby wskazać mi właściwy kierunek, abym Czy Można replikować podobne funkcje?
Byłoby miło, gdybym mógł rozwinąć / zwijać linie wokół diffów, na przykład.
4 answers
Oprócz tych, które wymieniasz, używam tylko często, gdy różnimy następujące:
-
:diffupdate
:diffu
-> Przelicz ponownie różnicę, przydatne, gdy po dokonaniu kilku zmian vim nie pokazuje już minimalnych zmian. Zauważ, że działa tylko wtedy, gdy pliki zostały zmodyfikowane wewnątrz vimdiff. W przeciwnym razie użyj:-
:e
aby ponownie załadować pliki, jeśli zostały zmodyfikowane poza vimdiff.
-
-
:set noscrollbind
- > tymczasowo wyłącza jednoczesne przewijanie na obu bufory, odtwarzane przez:set scrollbind
i przewijanie.
Większość tego, o co prosiłeś, to składanie: rozdział instrukcji obsługi Vima o składaniu. Poza diffami używam czasem:
-
zo
- > open fold. -
zc
- > Zamknij fold.
Ale pewnie lepiej Ci będzie:
-
zr
- > zmniejszanie poziomu składania. -
zm
- > jeszcze jeden poziom składania, proszę.
Lub nawet:
-
zR
- > Reduce powiedziałem, że całkowicie się składa!. -
zM
- > fold Most!.
Druga rzecz, o którą prosiłeś, użyj n linii fałdowania, można znaleźć w Instrukcja obsługi Vima na opcjach, za pomocą sekcja na diff :
-
set diffopt=<TAB>
, następnie zaktualizuj lub dodajcontext:n
.
Powinieneś również zapoznać się z sekcją instrukcji obsługi diff.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-31 03:37:54
Ustaw vimdiff na ignoruj wielkość liter
Po uruchomieniu vim diff z
gvim -d main.sql backup.sql &
Uważam, że denerwująco jeden plik ma słowa kluczowe MySQL pisane małymi literami, a drugi wielkimi literami pokazując różnice w praktycznie każdej innej linii
:set diffopt+=icase
To dynamicznie aktualizuje ekran i równie łatwo można go ponownie wyłączyć
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-22 06:40:41
Właściwie, jeśli to zrobisz Ctrl+W W
, nie będziesz musiał dodawać tego dodatkowego Ctrl
. Robi to samo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-24 09:04:07
Ctrl + W, w jak wspomniano może być używany do poruszania się od panelu do panelu.
Teraz możesz sam wybrać konkretną zmianę i wkleić ją do drugiego panelu w następujący sposób.Tutaj daję np jak bym chciał zmienić mój kawałek kodu z pane 1 do pane 2 i obecnie mój kursor jest w pane1
Użyj Shift-v, aby podświetlić linię I Użyj klawiszy GÓRA lub dół, aby wybrać żądany fragment kodu i kontynuuj od kroku 3 napisanego poniżej, aby wkleić zmiany w innym pane.
-
Użyj trybu wizualnego, a następnie zmień go
1 kliknięcie ' v ' spowoduje przejście do trybu wizualnego 2 Użyj klawisza w górę lub w dół, aby wybrać wymagany kod 3 Kliknij, klawisz escape Esc 4 Teraz użyj "yy", aby skopiować lub "dd", aby wyciąć zmianę 5 wykonaj 'ctrl + W, w' aby przejść do pane2 6 Kliknij "p", aby wkleić zmiany tam, gdzie ich potrzebujesz
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-04 06:48:46