2012-10-28 11 views
13

Mam teraz ustawiony mój wiersz statusu, aby był pomarańczowy w trybie wstawiania i biały w przeciwnym razie. Chciałbym sprawić, by następował kolejny kolor, gdy powrócę do normalnego trybu, jeśli plik zawiera jakieś niezapisane zmiany, ponieważ regularnie spaceruję po króliczej dziurze, zastanawiając się, dlaczego moje zmiany nie przyniosły efektu. Mały "[+]" nie uderza mnie wystarczająco w twarz;)Sprawdzanie Vimscript, jeśli obecny bufor nie zapisał zmian

Nie mogę znaleźć żadnych funkcji, które zaczynają się od "buf" i wyglądają jak predykaty dla zabrudzenia. Zakładam, że taki istnieje, ale jest nazwany czymś innym. Oczekuję, że będzie coś w rodzaju bufdirty() lub bufchanged(). Jakieś wskazówki? :)

Odpowiedz

19

myślę, że szukasz

:echo &mod[ified] 

która zwraca 1 przypadku zmian i 0 jeśli nie modyfikowane.

+0

Dokładnie tego, czego szukałem, dzięki! – d11wtq

3

Podoba mi się pomysł użycia koloru linii statusowej do wskazania stanu bufora. W rzeczywistości napisałem StatusLineHighlight plugin, który wskazuje na następujące atrybuty: zmodyfikowany, tylko do odczytu, niemodyfikowalny, specjalny nie-plikowy "scratch" (ale nie tryb wstawiania, którego używasz, dla tego, znajduję wskazanie trybu Vima w w lewym dolnym rogu wystarczająco).

+0

Ciekawe, popatrzę na twoją wtyczkę i mogę jej użyć, jeśli jest wystarczająco dyskretna :) – d11wtq

+0

Używanie wtyczki, dzięki. Zmieniono wszystkie kolory, więc tylko kilka trybów wygląda inaczej, ale działa dobrze. Być może możesz rozważyć dodanie do listy statusuLineInsert (wtedy mógłbym skonsolidować mój własny autocmd!);) – d11wtq

+0

Właściwie przestałem używać go, ponieważ nie mogłem uzyskać pożądanego zachowania z trybem wstawiania (i dziwnie, kolory pierwszego planu/tła odwrócone przy ponownym ładowaniu .vimrc). Kradnąłem twoją mądrość w odniesieniu do wydarzeń, które można wykorzystać, dzięki! ;) https://github.com/d11wtq/dot-vim/blob/master/vimrc#L161-178 – d11wtq

Powiązane problemy